การเขียนสคริปต์ระหว่างการพัฒนาแอปพลิเคชัน 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 (HFSoft.Web.Scripts.ReturnElement ใหม่ (this.txtReturn.ClientID, "ReturnString"));
HFSoft.Web.Scripts.RegisterScript.RegiOnClick(cmdSearch,dialog)
เพื่อเปิดแบบฟอร์มและตั้งค่าส่งคืน
HFSoft.Web.Scripts.ReturnValues returnValue=ใหม่ HFSoft.Web.Scripts.ReturnValues();
returnValue.Add("ReturnString",ตัวกรอง);
HFSoft.Web.Scripts.RegisterScript.RegiPageClient(this, "return", returnValue);
เปิดโค้ดของคลาสฟอร์ม (อันที่จริงแล้ว สคริปต์จำนวนมากสามารถห่อหุ้มด้วยวิธีนี้ได้)
00006 เนมสเปซ HFSoft . เว็บ . สคริปต์
00007 {
00008 /// <สรุป>
00009 /// สร้างคลาสสคริปต์แบบเปิด
00010 /// หมายเหตุ: รูปแบบข้อมูลที่ได้รับจากข้อมูลพารามิเตอร์ค่าส่งคืนต้องเป็น
00011 /// key= value|key1 =value1|.....
00012 /// </summary>
00013 คลาสสาธารณะ ShowModalDialog : IExecuteScript
00014 {
00015 const string ส่วนตัว _Dialog ="window.showModalDialog({0},' ',' dialHeight : { 1 } px ;
DialogWidth : { 2 } px ; ;
00016
#region IExecuteScript member
00017 บูลส่วนตัว ;
00018 / // <summary>
00019 /// คุณจำเป็นต้องโหลดพาเรนต์พอยน์เตอร์
00020 /// </summary>
00021 public bool Parent
00022 {
00023 รับ
00024 {
00025 // TODO: เพิ่ม SetElementsValue.Parent getter ที่จะนำไปใช้
00026 ส่งคืน mParent ;
00027 }
00028 ชุด
00029 {
00030 // สิ่งที่ต้องทำ: เพิ่ม SetElementsValue.Parent setter เพื่อใช้
00031 mParent = value ;
00032 }
00033 }
00034 สตริงส่วนตัว GetParent ()
00035 {
00036 if ( Parent )
00 037 ส่งคืน "ผู้ปกครอง" ;
00038 return "" ;
00039 }
00040 /// <summary>
00041 /// สร้างวัตถุ
00042 /// </summary>
00043 /// <param name="pageContainer">หน้าคอนเทนเนอร์</param>
00044 // / <param name="openPage" >เปิดหน้า</param>
00045 public ShowModalDialog ( string pageContainer , string openPage )
00046 {
00047 PageContainer = pageContainer ;
00048 OpenPage = openPage ;
00049 }
00050 public const string PageUrlTag ="
00051 /// <summary >
00052 /// สร้างสคริปต์
00053 /// </summary>
00054 /// <returns>string</returns>
00055 สตริงสาธารณะ Execute ()
00056 {
00057 // TODO: เพิ่มการใช้งาน ShowModalDialog.Execute
00058 string url =" ' " + PageContainer +" ? pageurl = '+' + GetPage ();
00059 url
= string . รูปแบบ ( _Dialog , url , ความสูง , ความกว้าง )
; ReturnElements นับ >0 )
00062 {
00063 url = "var getvalue=" + url +";if(getvalue != null){" ;
00064 foreach ( รายการ ReturnElement ใน ReturnElements )
00065 {
00066 url += item ());
-------------------------------------------------- -------------------------------------------------- ----------------------------------
00067 }
00068 url +="}" ;
00069 ส่งคืน url +";" ;
00070
}
00071
ส่งคืน url +";"
00073
00074 #endregion
00075 สตริงส่วนตัว mPageContainer ;
7 ///
รับหรือตั้งค่าเพจคอนเทนเนอร์ (รวมถึงเส้นทาง)
00078 /// </summary>
00079 สตริงสาธารณะ PageContainer
00080 {
00081 รับ
00082 {
00083 กลับ mPageContainer
00084 }
00085 ตั้ง
00086 {
00087 mPageContainer = value ;
00088 }
000 89 }
00090 สตริงส่วนตัว mOpenPage ;
00091 /// <summary>
00092 /// เปิดหน้า (รวมถึงเส้นทาง)
00093 /// </summary>
00094 สตริงสาธารณะ OpenPage
00095 {
00096 รับ
00097 {
00098 กลับ mOpenPage ;
00099 }
00100 ชุด
00101 {
00102 mOpen หน้า = ค่า ;
00103 }
00104 }
00105 int mHeight =400;
00106 /// <summary>
00107 /// รับหรือตั้งค่าความสูงของแบบฟอร์มเปิด
00108 ///summary>
00109 public int Height
00110 {
00111 รับ
00112 {
00113 return mHeight ;
00114 }
00115 set
00116 {
00117 mHeight = value ;
00118 }
00119 }
00120 ส่วนตัว int mWidth =400;
00121 /// <summary>
00122 /// รับหรือตั้งค่าความกว้างของแบบฟอร์มเปิด
00123 // / < /summary>
00124 ความกว้าง int สาธารณะ
00125 {
00126 รับ
00127 {
00128 กลับ mWidth ;
00130
ชุด
00131 {
-------------------------------------------------- -------------------------------------------------- ----------------------------------
00132 mWidth = value ;
00133 }
00134 }
00135 ReturnElementCollections ส่วนตัว mReturnElements = ReturnElementCollections ใหม่ ();
00136 /// <summary>
00137 /// รับชุดค่าส่งคืน
00138 /// </summary>
00139 สาธารณะ ReturnElementCollections ReturnElements
0014 0 {
00 141 รับ
00142 {
00143 ส่งคืน mReturnElements ;
00144 }
00145 }
00146 ส่วนตัว parameterCollection mParameters = ใหม่ parameterCollection ();
00147 /// <summary>
00148 /// รับชุดพารามิเตอร์ของเพจที่เปิด
00149 /// </summary>
00150 พารามิเตอร์คอลเลกชันพารามิเตอร์สาธารณะ
00151 {
00152 รับ
00153 {
00154 ส่งคืน mParameters ;
00155 }
00156 }
00157 สตริงส่วนตัว GetPage ()
00158 {
00159 ถ้า ( พารามิเตอร์ นับ ==0)
00160 กลับ "' "+ OpenPage+" '" ;
00161 ระบบ. ข้อความ StringBuilder . sb = ระบบใหม่ . Text . StringBuilder ();
00162 sb . ผนวก ("' "+ OpenPage+" ' );
00163
string param =""
;
0
;i
<พารามิเตอร์
. นับ
; + parent +" document.all('
"+Parameters[i].Value + " ').value" ;
00170 }
00171 else if ( พารามิเตอร์ [ i ]. Element == ElementType . Select )
00172 {
00173 param ="' " + พารามิเตอร์[ i].Name +" =' + " + parent +"__getSeletedButton(" + parent +
"document.all(' "+Parameters[i].Value + " '))" ;
00174 }
00175 if ( i ==0 )
00176 {
00177 sb . ผนวก ("+' "+System.Web.HttpUtility.UrlEncode(" ?") +" '+" + param );
00179
อื่น ๆ
00180 {
00181 sb . +' "+ System.Web.HttpUtility.UrlEncode(" &") +" '+" + param );
00182 }
00183 }
00184 กลับ sb . ToString ();
00185 }
00186
00187
00188
00189 }
00190 #region subClass
00191 สาธารณะ enum ElementType
0 0192 {
00193 ไม่มี,
00194 องค์ประกอบ,
00195 เลือก
-------------------------------------------------- -------------------------------------------------- ----------------------------------
00196 }
00197 /// <summary>
00198 /// คลาสคำอธิบายพารามิเตอร์
00199 /// </summary>
00200 พารามิเตอร์คลาสสาธารณะ
00201 {
00202 /// <summary>
00203 /// สร้างวัตถุพารามิเตอร์
00204 /// </ สรุป>
00205 พารามิเตอร์สาธารณะ ()
00206 {
00207 }
00208 /// <summary>
00209 /// สร้างวัตถุพารามิเตอร์ด้วยชื่อและค่าที่ระบุ
00210 /// </summary>
00211 /// <param name="name "> ชื่อพารามิเตอร์</param>
00212 /// <param name="value">ค่าพารามิเตอร์</param>
00213 พารามิเตอร์สาธารณะ ( ชื่อสตริง , ค่าสตริง )
00214 {
00215 ชื่อ = ชื่อ ;
00216 ค่า = ค่า ;
00217 }
00218 / // <summary>
00219 /// สร้างวัตถุพารามิเตอร์ด้วยชื่อและค่าที่ระบุ
00220 /// </summary>
00221 /// <param name="name">ชื่อพารามิเตอร์</param>
00222 /// <param name ="value">ค่าพารามิเตอร์</param>
00223 /// <param name="iselement">เป็นค่าชื่อองค์ประกอบ</param>
00224 พารามิเตอร์สาธารณะ ( ชื่อสตริง , ค่าสตริง , องค์ประกอบ ElementType )
00225 {
00226 Name = name ;
00227 Value = value ;
00228 Element = element ;
00229 }
00230
00231 สตริงส่วนตัว mName ;
00232 /// <summary>
00233 /// รับหรือตั้งชื่อพารามิเตอร์
00234
</summary> ชื่อสตริงสาธารณะ
00236 {
00237 รับ
00238 {
00239 กลับ mName ;
00240 }
00241 ชุด
00242 {
00243 mName = value ;
00244 }
00245 }
00246 สตริงส่วนตัว mValue ;
00247 /// <สรุป>
00248 /// รับ หรือตั้งค่าพารามิเตอร์
00249 /// </summary >
00250 ค่าสตริงสาธารณะ
00251 {
00252 รับ
00253 {
00254 คืน mValue ;
00255 }
00256 ตั้ง
00257 {
00258 mValue = value ;
-------------------------------------------------- -------------------------------------------------- ----------------------------------
00259 }
00260 }
00261 elementType ส่วนตัว mElement = ElementType ;
00262 /// <summary>
00263 /// รับหรือตั้งค่าว่าค่าพารามิเตอร์เป็นชื่อพารามิเตอร์
00264 ///summary>
00265 องค์ประกอบ ElementType สาธารณะ
00266 {
00267 รับ
00268 {
00269 กลับ mElement ;
00270 }
00271 ชุด
00272 {
00273 mElement = value ;
00274 }
00275
}
00277 คลาสสาธารณะ parameterCollection : System. CollectionBase
00278 {
00279 พารามิเตอร์สาธารณะ นี้ ]
00280 {
0 0281 รับ
00282 {
00283 กลับ ( ( พารามิเตอร์ ) รายการ [ ดัชนี ] );
00284 }
00285 ชุด
00286 {
00287 รายการ [ ดัชนี ] = ค่า ;
00288 }
00289 }
00290
00291 สาธารณะ int เพิ่ม ( ค่าพารามิเตอร์ )
00292 {
00293 กลับ ( รายการ . เพิ่ม ( ค่า) ) );
00294 }
00295
00296 int สาธารณะ IndexOf ( ค่าพารามิเตอร์ )
00297 {
00298 กลับ ( รายการ . IndexOf ( ค่า ) );
00299 }
00300
00301 การแทรก โมฆะสาธารณะ ( ดัชนี , ค่าพารามิเตอร์ )
00302 {
00303 รายการ . 00304
}
00305
00306 โมฆะสาธารณะ ลบ
(
ค่าพารามิเตอร์ )
00313
{
00314 //ถ้า
ค่า
ไม่ใช่ประเภท Int16
นี่
จะส่งคืนค่าเท็จ
00315 ส่งคืน ( รายการ . ประกอบด้วย ( ค่า ) );
00316 }
00317
00318 }
00319 /// <สรุป>
-------------------------------------------------- -------------------------------------------------- ----------------------------------
00320 /// ค่าส่งคืนคำอธิบายองค์ประกอบที่ได้รับคลาส
00321 /// </summary>
00322 คลาสสาธารณะ ReturnElement
00323 {
00324 /// <summary>
00325 /// สร้างวัตถุ
00326 /// </summary>
00327 /// < param name="id">ID องค์ประกอบที่ได้รับค่า</param>
00328 /// <param name="key">ค่าคีย์ของค่าที่เกี่ยวข้อง</param>
00329 public ReturnElement ( string id , string key )
00330 {
00331 ID = id ;
00332 Key = key ;
00333 }
00334 สตริงส่วนตัว mID ;
00335 /// <summary>
00336 /// รับหรือตั้งค่าID
องค์ประกอบ
00337 /// สรุป>
00338 ID สตริงสาธารณะ
00339
รับ
00341 {
00342 กลับ mID ;
00343 }
00344 ตั้ง
00345 {
00346 mID = ค่า ;
00347 }
00348 }
00349 สตริงส่วนตัว mKey ;
00350 /// <สรุป>
00351 /// รับหรือตั้งค่าคีย์ของค่าที่สอดคล้องกัน
00352 / // </summary >
00353 คีย์สตริงสาธารณะ
00354 {
00355 รับ
00356 {
00357 return mKey ;
00358 }
00359 set
00360 {
00361 mKey = value ;
00362 }
00363 }
00364 /// <summary>
00365 /// รับสคริปต์การดำเนินการ
00366 /// </ summary>
00367 /// <returns>string</returns>
00368 สตริงสาธารณะ GetScript ( string parent )
00369 {
00370 return parent +"document.all(' "+ID +" ').value=" + parent +"__AnalyseString (' "+Key +"
',getvalue);"
00371 }
00372 }
00373 คลาสสาธารณะ ReturnElementCollections : System . CollectionBase
00374 {
00375 public returnElement this [ int index ]
00376 {
00377 get
00378 {
00379 กลับ ( ( ReturnElement ) รายการ [ ดัชนี ] )
;
-------------------------------------------------- -------------------------------------------------- ----------------------------------
00381 ชุด
00382 {
00383 รายการ [ ดัชนี ] = ค่า ;
00384 }
00385 }
00386
00387 สาธารณะ int เพิ่ม (ค่า ReturnElement )
00388 {
00389 ผลตอบแทน ( รายการ . เพิ่ม ( ค่า ) );
00390 }
00391
00392 สาธารณะ int IndexOf ( ReturnElement ค่า )
00 393 {
00394 กลับ ( รายการ . IndexOf ( ค่า ) );
00395 }
00396
00397 โมฆะสาธารณะ แทรก ( int ดัชนี ค่า ReturnElement )
00398 {
00399 รายการ . แทรก ( ดัชนี , ค่า )
00401
00402
ลบสาธารณะ ( ค่า ReturnElement )
00403 {
00404
00405 List ลบ ( value );
00406 }
00407
00408 public bool ประกอบด้วย ( ReturnElement value )
00409 {
00410 // หากค่าไม่ใช่ประเภท Int16 สิ่งนี้จะส่งคืน
false ;
00412 }
00413 }
00414 #endregion
00415 }