2011年12月11日日曜日

ASP.NET:処理が重い

ASP.NETパフォーマンスについて・・・

・できるだけ ViewState を使用しない
 特に DataGrid コントロール使用時
・Web.config の設定を変更する
・ページキャッシュを有効にする
・不要な httpModules を取り除く
・Trace を false にする
・profiles のオートセーブを無効にする
・debug を false にする
・キャッシュの仕組みを組み込む
・スタイルシートを最適化する
・余計な宣言を削除
・JavaScript を最適化する → 参考
・JavaScript と CSS の読み込み場所を変える
・マスターページのトップで CSS を読み込む
・マスターページの最後に JavaScript を読み込む
・response.redirect() の代わりに server.transfer() を利用する
・クライアントサイドで入力チェックする

asp.netプリコンパイル
aspnet_compiler -v PreCompile -p D:\Inetpub\wwwroot\PreCompile d:\PreCompile
※PreCompileというのはプロジェクトの名前

ASP.NET:web.configが反映されない

web.configはルート直下におくこと。
web.configが複数ある場合、machine.configを適切に設定しないと怒られることがあります。

ASP.NET:文字化けする

ファイル保存(UTF-8)は、BOMをつけること。

2011年12月5日月曜日

ASP.NET:バリデータのあれこれ

バリデータ(validator)
便利でもあるが、ちょっと躓きやすいシロモノでもある。

jQueryチックにクライアントサイドでバリデーションが走るのがいいがフォーカス移動でもチェックが走ってしまったりする。
ウェブコントロールにCausesValidation=Falseをつけたり、javascriptでValidatorEnableを設定してみたりで有効無効を制御。

ちなみにjsガワでの制御は
function RadioButton2_OnClick(){
 if (typeof(ValidatorEnable) == 'function') {
  var RequiredFieldValidator4 = document.getElementById("ctl00_MainContentHolder_RequiredFieldValidator4");
  ValidatorEnable(RequiredFieldValidator4, false);
 }
}
こんな感じ。
ただValidatorEnableについてはけっこう情報が少なくて正直これであっているのかも不思議。

2011年12月4日日曜日

ASP.NET Label:とLiteral:の違い

asp:Labelコントロールに対してはスタイル系プロパティを設定可能だが、asp:Literalコントロールには設定できない
(Labelコントロールはspanにかこまれて出力されるため)

ASP.NET:object data sourceにプログラムからパラメータをセットする方法


  
  
  


こんな感じでaspに記述されてるとして、コードから
sample.SelectParameters("sampleID") = XXXX
とやっても「読み取り専用です」と怒られてしまう。
sample.SelectParameters("sampleID") = New Parameter("sampleID", TypeCode.String, sampleID)
とParameterオブジェクトをNewして無理矢理いれることが出来る。