1つのJavaScriptファイルの読込みで、複数のJSファイル、CSSファイルを
まとめて読込む方法
サンプル例:
親PGのHEADタグ内で、aaa.jsを読み込み指定
⇒ aaa.js内で、bbb.js、ccc.js、xxx.css、yyy.cssを読み込み
---------------------------------------------------------------------
【親PG】
<script type="text/javascript" src="aaa.js"></script>
---------------------------------------------------------------------
【aaa.js】
function include(stFile)
{
var script = document.createElement('script');
script.src = stFile;
script.type = 'text/javascript';
script.defer = true;
document.getElementsByTagName('head').item(0).appendChild(script);
}
include('bbb.js');
include('ccc.js');
document.write('xxx.css');
document.write('yyy.css');
2011年5月27日金曜日
2011年5月26日木曜日
2011年5月25日水曜日
ユーザーコントロール:runat=server を含む form タグの内側に置かなければ成りません。
ユーザーコントロールにコントロールを入れると表題のようなエラーが発生することがある。
エラー回避のために下記コードを追記すればOK。
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
End Sub
エラー回避のために下記コードを追記すればOK。
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
End Sub
ユーザ-コントロールの動的追加
ユーザーコントロールを動的に作成する
Dim usrcontrol As hogehoge = CType(LoadControl("hogehoge.ascx"), hogehoge)
Page.Controls.Add(usrcontrol)
コントロールにIDを指定することも可能
usrcontrol.ID = id
Dim usrcontrol As hogehoge = CType(LoadControl("hogehoge.ascx"), hogehoge)
Page.Controls.Add(usrcontrol)
コントロールにIDを指定することも可能
usrcontrol.ID = id
2011年5月20日金曜日
ASP.NET NPOI セルの書式設定を行う上での注意点
NPOIというライブラリを使用すると、サーバーサイドでのExcelファイルの作成が簡単に出来る(NPOIについてはこちらを参照 NPOI使用方法 。Javaで作られたPOIの.NET版)。
おそらくPOIにもいえることだが、セルの書式設定をする際には注意が必要。
同じ書式のセルのCellStyleは同一とみなされる模様
同じ書式が設定されているセルのCellStyleは同じオブジェクトとなる。例えば、同じ色のついているセルのうち、ある一箇所にだけ罫線をつけたいといった場合、下記のようにすると同じ色の付いている全セル(同じスタイルの全セル)に罫線がついてしまう
これを回避するには、以下のようにする必要がある
CellStyleの適用はこうしないと既存のスタイルが上書きされるか、他の同一スタイルのセルがダメージを受けることになるので、注意が必要。
※ただ、作りすぎるとExcelを開く際「書式が多すぎます」といったようなエラーになる。いったん作成した書式は使いまわしたほうが吉(Dictionary(Of String,CellStyle)というような感じで格納しておくなど・・・)。
なお、なぜかFontについてはCloneのメソッドが存在しない?ため、手動でCloneに当たる操作(プロパティをコピーしていく)を行う必要がある。
おそらくPOIにもいえることだが、セルの書式設定をする際には注意が必要。
同じ書式のセルのCellStyleは同一とみなされる模様
同じ書式が設定されているセルのCellStyleは同じオブジェクトとなる。例えば、同じ色のついているセルのうち、ある一箇所にだけ罫線をつけたいといった場合、下記のようにすると同じ色の付いている全セル(同じスタイルの全セル)に罫線がついてしまう
'※targetCellはHSSFCellオブジェクト
Dim boarderdCellStyle As CellStyle = targetCell.CellStyle
boarderdCellStyle.BorderBottom = CellBorderType.THIN
'→targetCellだけでなく、同じ色のセル全てに罫線が付く
これを回避するには、以下のようにする必要がある
'※hssfはHSSFWorkbookオブジェクト
Dim boarderdCellStyle As CellStyle = hssf.CreateCellStyle
boarderdCellStyle.CloneStyleFrom(targetCell.CellStyle)
boarderdCellStyle.BorderBottom = CellBorderType.THIN
'→新しいCellStyleを作成し、既存のスタイル設定をコピーする。その後に書式を設定
CellStyleの適用はこうしないと既存のスタイルが上書きされるか、他の同一スタイルのセルがダメージを受けることになるので、注意が必要。
※ただ、作りすぎるとExcelを開く際「書式が多すぎます」といったようなエラーになる。いったん作成した書式は使いまわしたほうが吉(Dictionary(Of String,CellStyle)というような感じで格納しておくなど・・・)。
なお、なぜかFontについてはCloneのメソッドが存在しない?ため、手動でCloneに当たる操作(プロパティをコピーしていく)を行う必要がある。
ASP.NET サイト内のページのURLを作成する
サイト内のページ(aspxファイル)のhttpアドレスを作成したい場合は以下のようにする。
ファイル出力をする際リンクを埋め込みたい、などといった場合などに使用できる
Request.Url.GetComponents(UriComponents.SchemeAndServer, UriFormat.SafeUnescaped) + _
ResolveUrl("./hoge.aspx")
前半部分でhttp://サーバー名・・・を作成していて、後の部分でサイト内ページのアドレスを作成している。
※ASP.NET MVCではまた違う可能性がある(というよりControlerでルーティングするはずなので)また違う可能性アリ
ファイル出力をする際リンクを埋め込みたい、などといった場合などに使用できる
Request.Url.GetComponents(UriComponents.SchemeAndServer, UriFormat.SafeUnescaped) + _
ResolveUrl("./hoge.aspx")
前半部分でhttp://サーバー名・・・を作成していて、後の部分でサイト内ページのアドレスを作成している。
※ASP.NET MVCではまた違う可能性がある(というよりControlerでルーティングするはずなので)また違う可能性アリ
2011年5月17日火曜日
VBScriptでメール送信 - Microsoft Collaboration Data Objects
Microsoft Collaboration Data Objects を利用することで、VBScriptからメール送信する機能を簡単に実現することが可能
メール通知によるプッシュ型の業務プロセス向け
<サンプル>
'---定数---
Const MSCDOCONF = "http://schemas.microsoft.com/cdo/configuration/" '固定URI
Const SMTPSRV = "xxx.xxx.xxx.xxx" 'SMTPサーバ:IP or FQDNで指定
Const SMTPPORT = 25 'ポート番号
'---メール送信---
function cdo_mail_send( _
byVal stSubject,byVal stFrom,byVal stTo,byVal stCc,byVal stBcc,byVal stBody,byVal stTempfile)
on error resume next
Set oCDO = CreateObject("CDO.Message") '「Collaboration Data Objects」作成
oCDO.Subject = stSubject '件名
oCDO.From = stFrom '送信元アドレス
oCDO.To = stTo '送信先アドレス(複数指定はセミコロン区切り)
if stCc <> "" then oCDO.Cc = stCc 'Ccアドレス
if stBcc <> "" then oCDO.Bcc = stBcc 'Bccアドレス
oCDO.TextBody = stBody '本文:テキスト形式
'oCDO.HTMLBody = stBody '本文:HTML形式
if stTempfile<>"" then oCDO.AddAttachment(stTempfile) 'ファイル添付(物理パス指定)
with oCDO.Configuration.Fields
.Item( MSCDOCONF & "sendusing" ) = 2 '固定値:SMTPポートに接続して送信
.Item( MSCDOCONF & "smtpserver" ) = SMTPSRV
.Item( MSCDOCONF & "smtpserverport" ) = SMTPPORT
.Update
end with
oCDO.Send 'メール送信
Set oCDO = Nothing '破棄
if err.number <> 0 then
'(エラー処理)
end if
end function
メール通知によるプッシュ型の業務プロセス向け
<サンプル>
'---定数---
Const MSCDOCONF = "http://schemas.microsoft.com/cdo/configuration/" '固定URI
Const SMTPSRV = "xxx.xxx.xxx.xxx" 'SMTPサーバ:IP or FQDNで指定
Const SMTPPORT = 25 'ポート番号
'---メール送信---
function cdo_mail_send( _
byVal stSubject,byVal stFrom,byVal stTo,byVal stCc,byVal stBcc,byVal stBody,byVal stTempfile)
on error resume next
Set oCDO = CreateObject("CDO.Message") '「Collaboration Data Objects」作成
oCDO.Subject = stSubject '件名
oCDO.From = stFrom '送信元アドレス
oCDO.To = stTo '送信先アドレス(複数指定はセミコロン区切り)
if stCc <> "" then oCDO.Cc = stCc 'Ccアドレス
if stBcc <> "" then oCDO.Bcc = stBcc 'Bccアドレス
oCDO.TextBody = stBody '本文:テキスト形式
'oCDO.HTMLBody = stBody '本文:HTML形式
if stTempfile<>"" then oCDO.AddAttachment(stTempfile) 'ファイル添付(物理パス指定)
with oCDO.Configuration.Fields
.Item( MSCDOCONF & "sendusing" ) = 2 '固定値:SMTPポートに接続して送信
.Item( MSCDOCONF & "smtpserver" ) = SMTPSRV
.Item( MSCDOCONF & "smtpserverport" ) = SMTPPORT
.Update
end with
oCDO.Send 'メール送信
Set oCDO = Nothing '破棄
if err.number <> 0 then
'(エラー処理)
end if
end function
2011年5月12日木曜日
ASP.NET デバッガが機能しない(ブレークポイントは、現在の設定ではヒットしません。)
いつの間にか起こる悪魔のエラー。設定したブレークポイントが無効になり止ってくれなくなる。
そこには、「ブレークポイントは、現在の設定ではヒットしません・・・」という謎のメッセージ。
一応この現象を解消することが出来たので、やったことをメモ。
・Webサイトのビルド
→意味無し
・VisualStudio再起動
→意味無し
・PC再起動(おまじないのようなものだが・・・)
→意味無し
・開いているファイルを一旦全て閉じ、VisualStudio再起動後再度開く
→再び機能するようになった!
どうやらファイルのバージョンが古いということを言っているようなので、一旦ファイルを閉じて
開くのは効果があるようだ。
そこには、「ブレークポイントは、現在の設定ではヒットしません・・・」という謎のメッセージ。
一応この現象を解消することが出来たので、やったことをメモ。
・Webサイトのビルド
→意味無し
・VisualStudio再起動
→意味無し
・PC再起動(おまじないのようなものだが・・・)
→意味無し
・開いているファイルを一旦全て閉じ、VisualStudio再起動後再度開く
→再び機能するようになった!
どうやらファイルのバージョンが古いということを言っているようなので、一旦ファイルを閉じて
開くのは効果があるようだ。
2011年5月10日火曜日
ASP.NET jQueryでラジオボタンリストの選択されている値を取得
ASP.NETのラジオボタンリストのコントロールは非常に扱いづらい形でHTML出力されるため、JavaScript側でその値を取得するには非常に骨が折れる。
ASP.NET上
-------------------------------------------------------------
追記
実はRadioButtonListはVerticalとHorizontalで出力される方法が異なり、HorizontalはTableタグ
で囲まれるため上記方法では対応できない。
そのため、最終的には以下のようにした
ASP.NET上
<asp:RadioButtonList ID="rbltest" CssClass="xxxx" >
実際のHTML
<span id="rbltest" class="xxxx">
<input id="rbltest_0" type="radio" name="(配置場所で変化?)$rbltest" value="1" /><label for="rbltest_0">①<label>
<input id="rbltest_1" type="radio" name="(配置場所で変化?)$rbltest" value="2" /><label for="rbltest_1">②<label>
<input id="rbltest_2" type="radio" name="(配置場所で変化?)$rbltest" value="3" /><label for="rbltest_2">③<label>
</span>
→SPANタグで囲われ、しかもCssはそのSAPNにしかつかない。idは個別に設定され、nameも不定になるようなので、チェックされているものの値の取得が非常に困難(場合によってはnameは使えるかも)。
jQueryでの値の取得
$("span[id='rbltest'] > :input[type='radio']").each(function () {
if ($(this).attr("checked") == true) {
alert($(this).val(););
}
});
→SPANをまず検索し、その子要素であるラジオボタンについて、チェックがついているものを取得する
function化したものを追記・・・
function getCheckedRadioButtonList(id){
var val = "";
$("span[id='" + id + "'] > :input[type='radio']").each(function () {
if ($(this).attr("checked") == true) {
val = $(this).val();
}
});
return val;
}
function化したものを追記・・・
function getCheckedRadioButtonList(id){
var val = "";
$("span[id='" + id + "'] > :input[type='radio']").each(function () {
if ($(this).attr("checked") == true) {
val = $(this).val();
}
});
return val;
}
-------------------------------------------------------------
追記
実はRadioButtonListはVerticalとHorizontalで出力される方法が異なり、HorizontalはTableタグ
で囲まれるため上記方法では対応できない。
そのため、最終的には以下のようにした
function getCheckedRadioButtonList(id) { var val = ""; $("#" + id).find(":radio").each(function () { if ($(this).attr("checked") == true) { val = $(this).val(); } }); return val; }
Oracle PL/SQL XMLデータをFunctionで受け取る2
前回はXMLDOMを使用した形式だったが、Xpathを使用しての処理も可能。
・特定ノードの件数を取得(件数をlvCountに設定・XMLTYPEのデータをpvXmlとする)
・テキストノードの値取得(注意事項あり。他記事参照)
・特定ノードの件数を取得(件数をlvCountに設定・XMLTYPEのデータをpvXmlとする)
SELECT count(*) INTO lvCount FROM TABLE(XMLSequence(pvXml.extract('/STUDENTS/STUDENT')));各要素へは以下のようにアクセス可能
FOR i IN 1 .. lvCount LOOP
pvXml.extract('/STUDENTS/STUDENT['|| i || ']');
END LOOP;
・テキストノードの値取得(注意事項あり。他記事参照)
pvXml.extract('/STUDENTS/STUDENT/NAME/text()').getStringVal();・属性値の取得
pvXml.extract('/STUDENTS/STUDENT/@ID').getStringVal();
※なお、単純なextractの結果はXMLTYPEとして扱われる。複数の形式のデータが混在する場合は、これを使用し切り分けることが可能
xmlTeacher := pvXml.extract('/PEOPLE/TEACHERS');
xmlStudent := pvXml.extract('/PEOPLE/STUDENTS');
2011年5月6日金曜日
Google AJAX Feed API - Dynamic Feed Control Wizard
RSSフィードの検索~自サイト設置用のソース生成まで出来て便利!
http://www.google.com/uds/solutions/wizards/dynamicfeed.html
生成されたソースは、オプションをいじることでカスタマイズ可
var options = {
numResults : 12, // ①
displayTime : 3000, // ②
fadeOutTime : 2000, // ③
pauseOnHover : true, // ④
linkTarget : google.feeds.LINK_TARGET_BLANK, // ⑤
stacked : true,
horizontal : false,
title : "RSS feed"
}
①1サイトあたりの表示件数
②1つの記事を表示する時間(ミリ秒)
③記事の表示切替時間(ミリ秒)
④マウスオーバーで記事切替を停止する/しない
⑤記事クリック時の表示先Window(自分自身:google.feeds.LINK_TARGET_SELF)
http://www.google.com/uds/solutions/wizards/dynamicfeed.html
生成されたソースは、オプションをいじることでカスタマイズ可
var options = {
numResults : 12, // ①
displayTime : 3000, // ②
fadeOutTime : 2000, // ③
pauseOnHover : true, // ④
linkTarget : google.feeds.LINK_TARGET_BLANK, // ⑤
stacked : true,
horizontal : false,
title : "RSS feed"
}
①1サイトあたりの表示件数
②1つの記事を表示する時間(ミリ秒)
③記事の表示切替時間(ミリ秒)
④マウスオーバーで記事切替を停止する/しない
⑤記事クリック時の表示先Window(自分自身:google.feeds.LINK_TARGET_SELF)
2011年5月2日月曜日
Oracle ソース内の全文検索方法
プロシージャ、ファンクション等のソース内を、指定した単語で全文検索する方法
【例】
「あいうえお」と記述しているソース名、オブジェクトタイプ、行番号、ソース行内容を一覧表示
select name,type,line,text from user_source
where text like '%あいうえお%' order by 1,2,3;
【例】
「あいうえお」と記述しているソース名、オブジェクトタイプ、行番号、ソース行内容を一覧表示
select name,type,line,text from user_source
where text like '%あいうえお%' order by 1,2,3;
登録:
投稿 (Atom)