ASP.NET アプリケーションの開発中にスクリプトを記述するのは非常に面倒なことですが、実際、一般的に使用されるスクリプトを対応する .NET コンポーネントにインストールし、サーバー上で呼び出すことができます。これにより、スクリプトの記述が大幅に簡素化され、スクリプトの再利用が向上します。スクリプト。
以下は、モーダル フォームを開いて戻り値を取得するためによく使用されるクラス呼び出しです。実際、複数のパラメーターを設定し、異なるコントロールに対して異なる戻り値を取得できます。
フォームを開いて戻り値を設定するスクリプト クラスを定義します。
HFSoft.Web.Scripts.ShowModalDialog ダイアログ=新しい HFSoft.Web.Scripts.ShowModalDialog(
XXX.Units.Config.WebBoot+"Appunit/WindowOpenDialog.aspx",
FrmFailureLogSearch.PageURI());
ダイアログ.高さ=400;
ダイアログ.幅=600;
Dialog.ReturnElements.Add(new HFSoft.Web.Scripts.ReturnElement(this.txtReturn.ClientID,"ReturnString"));
HFSoft.Web.Scripts.RegisterScript.RegiOnClick(cmdSearch,dialog);
フォームを開いて戻り値を設定するコード
HFSoft.Web.Scripts.ReturnValues returnValue=new HFSoft.Web.Scripts.ReturnValues();
returnValue.Add("ReturnString",filter);
HFSoft.Web.Scripts.RegisterScript.RegiPageClient(this, "return", returnValue);
フォーム クラスのコードを開きます (実際、多くのスクリプトはこの方法でカプセル化できます)。
00006 namespace HFSoft . Scripts
00007 {
00008 ///
00009 /// オープン フォーム スクリプト クラスを作成します
00010 /// 注: 戻り値パラメーター data によって受け取られるデータ形式は
00011 /// key=
である必要があります。value|key1 =value1|....
00012 ///
00013 public class ShowModalDialog : IExecuteScript
00014 {
00015 private const string _Dialog ="window.showModalDialog({0},' ',' DialogHeight : { 1 } px;
ダイアログ幅 : { 2 } px ; エッジ : はい ; サイズ変更可能 : いいえ ; スクロール :
はい ;');" ;
00016 #region IExecuteScript メンバー
00017 ;
00018 / //
00019 /// 親ポインターをロードする必要がありますか
00020 ///
00021 public bool Parent
00022 {
00023 get
00024 {
00025 // TODO: 実装する SetElementsValue.Parent ゲッターを追加します
00026 return mParent ;
00027 }
00028 set
00029 {
00030 // TODO: SetElementsValue.Parent セッターを追加して
00031 mParent = value ;
00034 private string GetParent ()
00035
{
00036
if (Parent)
000 37 は「親」を返します。 ;
00038 return "" ;
00039 }
00040 ///
00041 /// オブジェクトを構築します
00042 ///
00043 /// コンテナページ
00044 // / <パラメーション= "OpenPage"> PARM>
00045 PublicModaldialog(String PageContainer、String OpenPage
)
{
00047
PageContainer
=
PageContainer
///
00052 /// スクリプトを生成
00053 ///
00054 ///
00055 public string Execute ()
00056 {
00057 // TODO: ShowModalDialog.Execute 実装を追加します
00058 文字列 url = ' " + PageContainer +" ? pageurl ='+" + GetPage ();
00059 url = string .形式
( _Dialog , url , 高さ , 幅 );
00060 url = GetParent () + url ;
ReturnElements . Count >0 )
00062 {
00063 url = "var getvalue=" + url +";if(getvalue != null){" ;
00064 foreach (ReturnElements の ReturnElement 項目)
00065 {
00066 url += item . ());
-------------------------------------------------- ----------------------------------
00067 }
00068 URL +="}" ;
00069
return
URL +"
;" ;
00073
00074
#endregion
mPageContainer ;
///
コンテナ ページを取得または設定します (パスを含む)
00078 ///
00079 public string PageContainer
00080 {
00081 get
00082 {
00083 return mPageContainer
}
00085 set
00086 {
00087 mPageContainer = value ;
9
}
00090 プライベート文字列mOpenPage ;
mOpenPage 00091 ///
00092 /// ページを開く (パスを含む)
00093 ///
00094 public string OpenPage
00095 {
00096 get
00097 {
00098 return mOpenPage
}
00100 set
00101 {
00102 mOpenP年齢 = value ;
00103 }
00104 }
00105 private int mHeight =400;
///
00107 /// 開いたフォームの高さを取得または設定します
00108 ///
00109 public int Height
00110 {
00111 get
00112 {
00113 return mHeight ;
00114 }
00115 set
00116 {
00117 mHeight = value ;
00118 }
00119 }
00120 private int mWidth =400;
///
00122 /// 開いたフォームの幅を取得または設定します
00123 // /
00124 public int width
00125 {
00126 get
00127 {
00128 return mWidth
}
00130 set
00131 {
-------------------------------------------------- ----------------------------------
00132 mWidth = value ;
00133 }
00134 }
00135 private ReturnElementCollections mReturnElements = new ReturnElementCollections ();
00136 ///
00137 /// 戻り値の要素セットを取得します
00138 ///
00139 public ReturnElementCollections ReturnElements
00140 {
00 141 get
00142 {
00143 return mReturnElements ;
00144 }
00145 }
00146 private ParameterCollection mParameters = new ParameterCollection ();
00147 ///
00148 /// 開いているページのパラメータセットを取得します
00149 ///
00150 public ParameterCollection パラメータ
00151 {
00152 get
00153 {
00154 return mParameters ;
00155 }
00156 }
00157 private string GetPage ()
00158 {
00159 if ( Parameters . Count ==0)
00160 return "' "+OpenPage+" '" ;
00161 システム。テキスト StringBuilder . StringBuilder ();
00163
string param ="
"
; 0; i < パラメータ ; i ++)
00166 {
00167 if ( パラメータ [ i ]. 要素 == ElementType . 要素 )
00168 {
00169 param ="' " + パラメータ[i].Name +" =' + " +parent +" document.all('
"+Parameters[i].Value + " ').value" ;
00170 }
00171 else if ( パラメーター [ i ].Element == ElementType .Select )
00172 {
00173 param ="' " + Parameters[i].Name +" =' + " +parent +"__getSeletedButton(" +parent +
"document.all(' "+Parameters[i].Value + " '))" ;
00174 }
00175 if ( i ==0 )
00176 {
00177 sb . Append ("+' "+System.Web.HttpUtility.UrlEncode(" ?") +" '+" + param );
00179
else
00180 {
00181 sb . +' "+ System.Web.HttpUtility.UrlEncode(" &") +" '+" + param );
00182 }
00183 }
00184 return sb . ToString ();
00185 }
00186
00187
00188
00189 }
00190 #region subClass
00191 public enum ElementType
0 0192 {
00193 なし、
00194 要素、
00195 選択
-------------------------------------------------- ----------------------------------
00196 }
00197 ///
00198 /// パラメータの説明 class
00199 ///
00200 public class Parameter
00201 {
00202 ///
00203 /// パラメータオブジェクトの構築
00204 /// summary>
00205 public Parameter ()
00206 {
00207 }
00208 ///
00209 /// 指定された名前と値でパラメータ オブジェクトを構築します
00210 ///
00211 /// パラメータ名
00212 /// パラメータ値
00213 public Parameter ( string name , string value )
00214 {
00215 Name = name ;
00216 Value = value ;
00217 }
00218 / //
00219 /// 指定された名前と値でパラメータ オブジェクトを構築します
00220 ///
00221 /// パラメータ名
00222 /// パラメータ値
00223 /// 値は要素名ですか
00224 public Parameter ( string name , string value , ElementType element )
00225 {
00226 Name = 名前 ;
00228 Element =
要素 ;
00230
00231
プライベート文字列 mName ;
///
00233 /// パラメータ名を取得または設定します
00234 ///
; public string Name
00236 {
00237 get
00238 {
00239 return mName ;
00241
set
00242 {
00243 mName = value ;
00245 }
00246
private string mValue ;
///
00248 ///パラメータ値
00249 ///
00250 パブリック文字列値
00251 {
00252 get
00253 {
00254 return mValue
}
00256 set
00257 {
00258 mValue = 値 ;
-------------------------------------------------- ----------------------------------
00259 }
00260 }
00261 private ElementType mElement = ElementType . None ;
///
00263 /// パラメータ値がパラメータ名であるかどうかを取得または設定します
00264 ///
00265 public ElementType Element
00266 {
00267 get
00268 {
00269 return mElement ;
00270 }
00271 set
00272 {
00273 mElement = 値 ;
00275
}
00276 }
00277 public class ParameterCollection: CollectionBase
00278 {
00279 public パラメータ this 。 t インデックス ]
00280 {
0 0281 取得
00282 {
00283 return ( ( パラメータ ) リスト [ インデックス ] );
00285
set
00286 {
00287 リスト [ インデックス ] = 値 ;
00290
00291 public int Add ( パラメータ値 )
00292
{
00293 return ( リスト .Add ( 値
)
) );
00294 }
00295
00296 public int IndexOf ( パラメータ値 )
00297 {
00298 return ( List . IndexOf ( value ) )
}
00300
00301 public void Insert ( int インデックス , パラメータ値 )
00302 {
00303 リスト . value );
00304 }
00305
00306 public void Remove ( Parameter value )
00307 {
00308
00309 List . Remove ( value )
}
00311
00312 public bool Contains ( Parameter value )
00313 {
00314 // value が Int16 型でない場合、これはfalse を返します。
00315
return ( List . Contains ( value
)
)
;
-------------------------------------------------- ----------------------------------
00320 /// 戻り値受け取り要素記述 class
00321 ///
00322 public class ReturnElement
00323 {
00324 ///
00325 /// Construct object
00326 ///
00327 /// < param name="id">値を受け取る要素ID
00328 /// 対応する値のキー値
00329 public ReturnElement ( string id , string key )
00330 {
00331 ID = id ;
00332 Key = key ;
00333 }
00334 プライベート文字列 mID ;
///
00336 /// 要素 ID を取得または設定します
00337 ///
00338 パブリック文字列 ID
00339 {
00340 get
00341 {
00342 return mID ;
00343 }
00344 set
00345 {
00346 mID = value ;
00347 }
00348 }
00349 private string mKey ;
///
00351
/// 対応する値のキー値を取得または設定します
//
00353 public string Key
00354 {
00355 get
00356 {
00357 return mKey ;
00359
set
00360 {
00362
}
00363 }
00364 ///
00365 /// 操作スクリプトを取得します
00366 /// summary>
00367 ///
00368 public string GetScript ( stringparent )
00369 {
00370 returnparent +"document.all(' "+ID +" ').value=" + 親 +"__AnalyseString (' "+Key +"
',getvalue); ;
00371 }
00372 }
00373 public class ReturnElementCollections : CollectionBase
00374 {
00375 public ReturnElement this [ int インデックス ]
00376 {
00377
get
00379
return ( ( ReturnElement ) リスト [ インデックス ] )
;
-------------------------------------------------- ----------------------------------
00381 セット
00382 {
00383 リスト [インデックス] = 値 ;
00384 }
00385 }
00386
00387 public int Add (ReturnElement value )
00388 {
00389 return ( List .Add ( value ) )
}
00391
00392 public int IndexOf ( ReturnElement値)
00 393 {
00394 return ( List . IndexOf ( value ) );
00396
00397
public void Insert ( intindex , ReturnElement value )
00398 {
00399 List . Insert (index , value )
}
00401
00402 public void Remove (ReturnElement value );
00403 {
00404
00405 List . Remove ( value );
00406 }
00407
00408 public bool Contains ( ReturnElement value )
00409 {
00410 // value が Int16 型でない場合は、 false を返します
( List . Contains ( value ) )。 ;
00412 }
00413 }
00414 #endregion
00415 }