Menulis Skrip selama pengembangan aplikasi ASP.NET adalah hal yang sangat menjengkelkan. Faktanya, kita dapat menginstal Skrip yang umum digunakan ke dalam komponen .NET yang sesuai dan memanggilnya di server. Hal ini dapat sangat menyederhanakan penulisan Skrip dan meningkatkan penggunaan kembali Skrip.Berikut
ini adalah panggilan kelas yang umum digunakan untuk membuka formulir modal dan mendapatkan nilai kembalian. Faktanya, Anda dapat mengatur beberapa parameter dan mendapatkan nilai kembalian yang berbeda untuk kontrol yang berbeda.
Tentukan kelas skrip yang membuka formulir dan menetapkan nilai kembalian.
Dialog HFSoft.Web.Scripts.ShowModalDialog=HFSoft.Web.Scripts.ShowModalDialog baru(
XXX.Units.Config.WebBoot+"Appunit/WindowOpenDialog.aspx",
FrmFailureLogSearch.PageURI());
dialog.Tinggi=400;
dialog.Lebar=600;
dialog.ReturnElements.Add(HFSoft.Web.Scripts.ReturnElement(this.txtReturn.ClientID,"ReturnString"));
cmdSearch
,dialog);
HFSoft.Web.Scripts.ReturnValues returnValue=HFSoft.Web.Scripts.ReturnValues() baru;
returnValue.Tambahkan("ReturnString",filter);
HFSoft.Web.Scripts.RegisterScript.RegiPageClient(ini, "return", returnValue);
Buka kode kelas formulir (sebenarnya, banyak Script dapat dienkapsulasi dengan cara ini).
00006
namespace
HFSoft
Web
.
nilai|kunci1 =nilai1|.....
00012 /// </ringkasan>
00013 kelas publik ShowModalDialog : IExecuteScript
00014 {
00015 private const string _Dialog ="window.showModalDialog({0},' ',' dialogHeight : { 1 } px;
lebar dialog: { 2 } px; tepi: Diangkat;
tengah:Ya
; bantuan: Tidak; dapat diubah ukurannya: Tidak; gulir:
Ya;');"
;
00018 / // <summary>
00019 /// Apakah Anda perlu memuat penunjuk induk
00020 /// </summary>
00021 public bool Parent
00022 {
00023 dapatkan
00024 {
00025 // TODO: Tambahkan SetElementsValue.Parent getter untuk diimplementasikan
00026 kembalikan mParent ;
00027 }
00028 set
00029 {
00030 // TODO: Tambahkan SetElementsValue.Parent setter untuk mengimplementasikan
00031 mParent = value ;
00032 }
00033 }
00034 string pribadi GetParent ()
00035 {
00036 if ( Parent )
00 037 mengembalikan "orang tua." ;
00038 mengembalikan "" ;
00039 }
00040 /// <ringkasan>
00041 /// Membangun objek
00042 /// </ringkasan>
00043 /// <param name="pageContainer">Halaman penampung</param>
00044 // / <param name="openPage" >Buka halaman</param>
00045 public ShowModalDialog ( string pageContainer , string openPage )
00046
{
00047 PageContainer = pageContainer ;
00048
OpenPage = openPage
;
/// <summary >
00052 /// Buat skrip
00053 /// </summary>
00054 /// <returns>string</returns>
00055 public string Execute ()
00056 {
00057 // TODO: Tambahkan implementasi ShowModalDialog.Execute
00058 string url =" ' " + PageContainer +" ? pageurl ='+" + GetPage();
00059
url
= string . Format ( _Dialog , url , Tinggi , Lebar );
ReturnElements .Jumlah >0 )
00062 {
00063 url = "var getvalue=" + url +";if(getvalue != null){" ;
00064 foreach ( Item ReturnElement di ReturnElements )
00065 {
00066 url += item ());
--------------------------------------------------- -----------------------------------
00067 }
00068 url +="}" ;
00069
mengembalikan url +"
;" ;00070
}
00071
mengembalikanurl
+"
;
" Dapatkan atau setel halaman kontainer (termasuk jalur)
00078 /// </summary>
00079 public string PageContainer
00080 {
00081 dapatkan
00082 {
00083 return mPageContainer ;
00084 }
00085 set
00086 {
00087 mPageContainer = value ;
89
}
00090 string pribadi mOpenPage ;
00091 /// <ringkasan>
00092 /// Buka halaman (termasuk jalur)
00093 /// </ringkasan>
00094
string publik OpenPage
00095
{
00096 dapatkan
00097 {
00098 kembalikan mOpenPage ;
Halaman
= value ;
00103 }
00104 }
00105 private int mHeight =400;
00106 /// <ringkasan>
00107 /// Dapatkan atau setel ketinggian formulir terbuka
00108 /// </ringkasan>
00109 public int Tinggi
00110 {
00111 dapatkan
00112 {
00113 return mHeight ;
00114 }
00115 set
00116 {
00117
mHeight = nilai ;
00118
}
00119 }
00120
private int mWidth =400;
/ < /summary>
00124 public int Lebar
00125 {
00126 dapatkan
00127 {
00128 kembalikan mWidth ;
00129 }
00130 set
00131 {
--------------------------------------------------- -----------------------------------
00132 mWidth = nilai ;
00133
}
00134
}
00135
private
ReturnElementCollections mReturnElements = new ReturnElementCollections ();
0140 {
00 141 dapatkan
00142 {
00143return
mReturnElements ;
00144 }
00145 }
00146 private ParameterCollection mParameters = new ParameterCollection (
)
;
00150 ParameterCollection publik Parameter
00151 {
00152 dapatkan
00153 {
00154 kembalikan mParameters ;
00155 }
00156 }
00157 string pribadi GetPage ()
00158 {
00159 jika ( Parameter . Hitung ==0)
00160 kembalikan "' "+OpenPage+" '" 0
0161 Sistem. Teks StringBuilder .sb = Sistem baru. StringBuilder ();
00162 sb .Tambahkan
(
"' "+OpenPage+" '" )
;
0; i < Parameter . Hitung ; i ++)
00166 {
00167 if ( Parameter [ i ]. Elemen == ElementType . Elemen )
00168 {
00169 param ="' " + Parameter[i].Nama +" =' + " + induk +" document.all('
"+Parameter[i].Nilai + " ').nilai" ;
00170 }
00171 else if ( Parameter [ i ]. Elemen == ElementType . Pilih )
00172 {
00173 param ="' " + Parameter[ i].Nama +" =' + " + induk +"__getSeletedButton(" + induk +
"document.all(' "+Parameter[i].Nilai + " '))" ;
00174 }
00175 if ( i ==0 )
00176 {
00177sb
. Tambahkan ("+' "+System.Web.HttpUtility.UrlEncode(" ?") +" '+" +
param
)
; +' "+ System.Web.HttpUtility.UrlEncode(" &") +" '+" + param );
00182 }
00183 }
00184 return sb . ToString();
00185 }
00186
00187
00188
00189 }
00190 #wilayah subKelas
00191 publik enum ElementType
0 0192 {
00193 Tidak ada,
00194 Elemen,
00195 Pilih
--------------------------------------------------- -----------------------------------
00196 }
00197 /// <ringkasan>
00198 /// Kelas deskripsi parameter
00199 /// </ringkasan>
00200 kelas publik Parameter
00201 {
00202 /// <ringkasan>
00203 /// Membuat objek parameter
00204 /// </ ringkasan>
00205 public Parameter ()
00206 {
00207 }
00208 /// <ringkasan>
00209 /// Membangun objek parameter dengan nama dan nilai yang ditentukan
00210 /// </summary>
00211 /// <param name="name "> Nama parameter</param>
00212 /// <param name="value">Nilai parameter</param>
00213 publik Parameter ( nama string, nilai string )
00214 {
00215 Nama = nama ;
00216 Nilai = nilai ;
00217 }
00218 / // <summary>
00219 /// Membuat objek parameter dengan nama dan nilai tertentu
00220 /// </summary>
00221 /// <param name="name">Nama parameter</param>
00222 /// <param name ="value">Nilai parameter</param>
00223 /// <param name="iselement">Apakah nilai nama elemen</param>
00224 public Parameter ( nama string , nilai string , elemen ElementType )
00225 {
00226 Nama = nama ;
00227
Nilai=
nilai ;
00228
Elemen = elemen ;
00229 }
00230
00231
string pribadi mName ;
string publik Nama
00236 {
00237 dapatkan
00238 {
00239 kembalikan mName ;
00240 }
00241 setel
00242 {
00243 mName = nilai ;
00244 }
00245 }
00246 string pribadi mValue ;
/ <ringkasan>
00248 /// Dapatkan atau atur nilai parameter
00249 /// </ringkasan >
00250 string publik Nilai
00251 {
00252 dapatkan
00253 {
00254 kembalikan mValue
}
00256 tetapkan
00257 {
00258 mValue = nilai ;
--------------------------------------------------- -----------------------------------
00259 }
00260 }
00261 private ElementType mElement = ElementType . Tidak ada
00262 /// <ringkasan>
00263 /// Mendapatkan atau menyetel apakah nilai parameter adalah nama parameter
00264 /// </ringkasan>
00265 public ElementType Element
00266 {
00267 dapatkan
00268 {
00269 kembalikan mElement ;
00270 }
00271 tetapkan
00272 {
00273 mElement = nilai ;
00274 }
00275 }
00276 }
00277 public class ParameterCollection : System CollectionBase
00278 {
00279 public Parameter ini [ in t indeks ]
00280 {
0 0281 dapatkan
00282 {
00283 kembali ( (Parameter ) Daftar [ indeks ] );
00284 }
00285 set
00286 {
00287 Daftar [ indeks ] = nilai ;
00288 }
00289 }
00290
00291 public int Tambahkan ( Nilai parameter )
00292 {
00293 kembali ( Daftar . Tambahkan ( nilai ) ) );
00294 }
00295
00296 public int IndexOf ( Nilai parameter )
00297 {
00298 kembali ( Daftar . IndexOf ( nilai ) }
00300
00301
public void Sisipkan ( indeks int , Nilai parameter )
00302 {
00303 Daftar Sisipkan ( indeks , value );
00304 }
00305
00306 public void Hapus ( Nilai parameter )
00307 {
00308
00309 Daftar . Hapus ( nilai
00310 }
00311
00312 public bool Berisi ( Nilai parameter )
00313 {
00314 // Jika nilai bukan bertipe Int16, ini
akan
mengembalikan
false
.
--------------------------------------------------- -----------------------------------
00320 /// Mengembalikan nilai yang menerima kelas deskripsi elemen
00321 /// </ringkasan>
00322 kelas publik ReturnElement
00323 {
00324 /// <ringkasan>
00325 /// Membuat objek
00326 /// </ringkasan>
00327 /// < param name="id">ID Elemen yang menerima nilai</param>
00328 /// <param name="key">Nilai kunci dari nilai terkait</param>
00329 public ReturnElement ( string id , string key )
00330 {
00331 ID=
id ;
00332
Kunci =kunci
;
00333
}
00334 string
pribadi mID
;
dapatkan
00341 {
00342 return mID ;
00343 }
00344 atur
00345 {
00346 mID = nilai ;
00347
}
00348
}
00349
string pribadi mKey ;
// </ringkasan >
00353 kunci string publik
00354 {
00355 dapatkan
00356 {
00357 kembalikan mKey ;
00358
}
00359
setel
00360
{
00361 mKey = nilai ;
skrip operasi
00366 /// </ ringkasan>
00367 /// <returns>string</returns>
00368 string publik GetScript ( string induk )
00369 {
00370 return parent +"document.all(' "+ID +" ').value=" +"__ analysestring (
'
"
+
Key
"
,
getValue
)
;
"
return ( ( ReturnElement ) Daftar [ indeks ] )
;
--------------------------------------------------- -----------------------------------
00381 set
00382 {
00383 Daftar [ indeks ] = nilai ;
00384 }
00385 }
00386
00387 public int Tambahkan ( Nilai ReturnElement )
00388 {
00389 kembali ( Daftar . Tambahkan ( nilai )
}
00391
00392 public int IndexOf ( ReturnElement ); nilai )
00 393 {
00394 return ( List . IndexOf (value
) );
00395 }
00396
00397public
void Insert ( int indeks , nilai ReturnElement )
00398
{
00399 List .
00403 {
00404
00405 Daftar . Hapus ( nilai );
00406 }
00407
00408 public bool Berisi(
Nilai ReturnElement )
00409 {
00410 // Jika nilai bukan bertipe Int16, ini akan menghasilkan false.
;
00412 }
00413 }
00414 #endregion
00415 }