تعد كتابة البرامج النصية أثناء تطوير تطبيقات ASP.NET أمرًا مزعجًا للغاية. في الواقع، يمكننا تثبيت البرامج النصية شائعة الاستخدام في مكونات .NET المقابلة واستدعائها على الخادم، مما يؤدي إلى تبسيط عملية كتابة البرامج النصية وتحسين إعادة استخدامها البرامج النصية.
فيما يلي استدعاء فئة شائع الاستخدام لفتح نموذج مشروط والحصول على قيمة الإرجاع. في الواقع، يمكنك تعيين معلمات متعددة والحصول على قيم إرجاع مختلفة لعناصر تحكم مختلفة.
حدد فئة البرنامج النصي التي تفتح النموذج وتقوم بتعيين قيمة الإرجاع.
HFSoft.Web.Scripts.ShowModalDialog حوار=جديد HFSoft.Web.Scripts.ShowModalDialog(
XXX.Units.Config.WebBoot+"Appunit/WindowOpenDialog.aspx"،
FrmFailureLogSearch.PageURI());
الحوار. الارتفاع = 400؛
Diagram.Width=600;
حوار.ReturnElements.Add(new HFSoft.Web.Scripts.ReturnElement(this.txtReturn.ClientID,"ReturnString"));
HFSoft.Web.Scripts.RegisterScript.RegiOnClick(cmdSearch,dialog
code) لفتح النموذج وتعيين القيمة المرجعة
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 /// <summary>
00009 /// إنشاء فئة برنامج نصي مفتوح
00010 /// ملاحظة: يجب أن يكون تنسيق البيانات الذي تتلقاه بيانات معلمة القيمة المرجعة هو
00011 /// key= value|key1 =value1|.....
00012 /// </summary>
00013 public class ShowModalDialog : IExecuteScript
00014 {
00015 سلسلة const خاصة _Dialog ="window.showModalDialog({0},' ',' الحوار الارتفاع : { 1 }
عرض الحوار: { 2 } بكسل؛ الحافة: المركز: نعم؛ مساعدة: لا؛ الحالة: لا؛ التمرير:
نعم؛')؛"
00016 #region IExecuteScript member
00017 ;
00018 // <summary>
00019 /// هل تحتاج إلى تحميل المؤشر الأصلي
00020 /// </summary>
00021 public bool Parent
00022 {
00023 get
00024 {
00025 // TODO: أضف SetElementsValue.Parent getter للتنفيذ
00026 return mParent ;
00027 }
00028 set
00029 {
00030 // TODO: أضف SetElementsValue.Parent setter للتنفيذ
00031 mParent = value ;
00032 }
00033 }
00034 سلسلة خاصة GetParent ()
00035 {
00036 if ( Parent )
000 37 إرجاع "الوالد".
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
}
00050 public const string PageUrlTag ="pageurl" ;
/// <summary >
00052 /// إنشاء برنامج نصي
00053 /// </summary>
00054 /// <returns>string</returns>
00055 public string Execute ()
00056 {
00057 // TODO: إضافة تنفيذ ShowModalDialog.Execute
00058 string url =" ' " + PageContainer +" ? pageurl ='+" + GetPage ();
00059
url = string . ( _Dialog , url , Height , Width )
; ReturnElements .Count >0 )
00062 {
00063 url = "var getvalue=" + url +";if(getvalue != null){" ;
00064 foreach ( عنصر ReturnElement في ReturnElements )
00065 {
00066 url += item ());
-------------------------------------------------- ----------------------------------
00067 }
00068 URL +" ;
00069 return url +";" ;
00070 }
00071 return url +";"
00073
00074
#endregion
00075 public string ;
0077
///
احصل على صفحة الحاوية أو قم بتعيينها (بما في ذلك المسار)
00078 /// </summary>
00079 public string PageContainer
00080 {
00081 get
00082 {
00083 return mPageContainer ;
00084 }
00085 set
00086 {
00087 mPageContainer = value ;
89
}
00090 سلسلة خاصة mOpenPage ;
00091 /// <summary>
00092 /// فتح الصفحة (بما في ذلك المسار)
00093 /// </summary>
00094 public string OpenPage
00095 {
00096 get
00097 {
00098 return mOpenPage
}
00100 set
00101 {
00102 موبينباج = value ;
00103 }
00104 }
00105 public int mHeight =400;
00106 /// <summary>
00107 /// احصل على ارتفاع النموذج المفتوح أو قم بتعيينه
00108 /// </summary>
00109 public int Height
00110 {
00111 get
00112 {
00113 return mHeight ;
00114 }
00115
set
00116 {
00117
mHeight = value ;
00118
}
00119 }
00120 public int mWidth =400;
/ < /summary>
00124 public int Width
00125 {
00126 get
00127 {
00128 return mWidth ;
00129 }
00130 set
00131 {
-------------------------------------------------- ----------------------------------
00132 mWidth = value ;
00133 }
00134 }
00135 Private ReturnElementCollections mReturnElements = new ReturnElementCollections ();
00136 /// <summary>
00137 /// احصل على مجموعة عناصر القيمة المرجعة
00138 /// </summary>
00139 public ReturnElementCollections ReturnElements
0 0140 {
00 141 get
00142 {
00143 return mReturnElements ;
00144 }
00145 }
00146 Private ParameterCollection mParameters = new ParameterCollection ();
/// <summary>
00148 /// احصل على مجموعة المعلمات للصفحة المفتوحة
00149 /// </summary>
00150 معلمات مجموعة المعلمات العامة
00151 {
00152 get
00153 {
00154 return mParameters ;
00155 }
00156 }
00157 سلسلة خاصة GetPage ()
00158 {
00159 if ( Parameters . Count ==0)
00160 return "' "+OpenPage+" ' " ؛
00161 النظام . Text StringBuilder .sb = new System . StringBuilder (
)
؛
00162
sb
0; i < Parameters ; i ++)
00166 {
00167 if ( Parameters [ i ]. Element == ElementType . Element )
00168 {
00169 param ="' " + Parameters[i].Name +" =' + " +parent +" document.all('
"+Parameters[i].Value + " ').value" ;
00170 }
00171 else if ( Parameters [ 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
.
+' "+ System.Web.HttpUtility.UrlEncode(" &") +" '+" + param );
00182 }
00183 }
00184 return sb . ToString ();
00185 }
00186
00187
00188
00189 }
00190 #region subClass
00191 public تعداد ElementType
0 0192 {
00193 لا شيء،
00194 عنصر،
00195 حدد
-------------------------------------------------- ----------------------------------
00196 }
00197 /// <summary>
00198 /// فئة وصف المعلمة
00199 /// </summary>
00200 public class Parameter
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 الاسم = الاسم ;
00227 القيمة = القيمة ;
00228 العنصر = العنصر ;
00230
00231
سلسلة خاصة mName ;
00232 /// <summary>
00233
/// احصل على اسم المعلمة أو قم بتعيينه
00234
اسم السلسلة العامة
00236 {
00237 احصل على
00238 {
00239 return mName }
00241
set
00242 {
00243 mName = value ;
00245
}
00246 سلسلة خاصة mValue ;
/
احصل على قيمة المعلمة أو قم بتعيينها
00249 /// </summary >
00250 public string Value
00251 {
00252 get
00253 {
00254 return mValue ;
00255 }
00256 set
00257 {
00258 mValue = value ;
-------------------------------------------------- ----------------------------------
00259 }
00260 }
00261 public ElementType mElement = ElementType ;
00262 /// <summary>
00263 /// احصل على أو قم بتعيين ما إذا كانت قيمة المعلمة هي اسم المعلمة
00264 /// </summary>
00265 public ElementType Element
00266 {
00267 احصل على
00268 {
00269 return mElement ;
00270 }
00271 set
00272 {
00273 mElement = value ;
00274 }
00275 }
00276 }
00277 مجموعة المعلمات العامة: System
[مؤشر كثافة العمليات]
00280
{
0 0281 احصل على
00282 {
00283 إرجاع ( ( معلمة ) قائمة [ فهرس ] )
}
00285 مجموعة
00286 {
00287 قائمة [ فهرس ] = قيمة ;
00288 }
00289 }
00290
00291 إضافة int عامة ( قيمة المعلمة )
00292 {
00293 return ( List . Add ( value ) 00294
}
00295
00296 public int IndexOf ( Parameter value )
00297 {
00298 return ( List . IndexOf ( value ) );
00300
00301
public void Insert ( int Index , Parameter value )
00302 {
00303 List . value );
00304 }
00305
00306 public void Remove ( Parameter value )
00307 {
00308
00309 List Remove ( value ) ;
00311
00312
public bool يحتوي على ( قيمة المعلمة )
00313 {
00314 // إذا لم تكن القيمة من النوع Int16 ، فهذا سيُرجع خطأ
00315 ( قائمة . تحتوي على ( قيمة ) )
}
00317
00318 }
00319 /// <summary>
-------------------------------------------------- ----------------------------------
00320 /// فئة وصف العنصر المتلقي للقيمة المرتجعة
00321 /// </summary>
00322 public class ReturnElement
00323 {
00324 /// <summary>
00325 /// إنشاء الكائن
00326 /// </summary>
00327 /// < param name="id">معرف العنصر الذي يستقبل القيمة</param>
00328 /// <param name="key">القيمة الرئيسية للقيمة المقابلة</param>
00329 public ReturnElement (معرف السلسلة، مفتاح السلسلة)
00330 {
00331 معرف = معرف ;
00332 مفتاح = مفتاح ;
00333
معرف سلسلة خاصة ;
00335 /// <summary>
00336 /// احصل علىمعرف
العنصر أو قم بتعيينه
00337 /// </summary>
00338 معرف السلسلة العامة
00339
احصل على
00341 {
00342 return mID ;
00343 }
00344 set
00345 {
00346 mID = value ;
00347 }
00348 }
00349 سلسلة خاصة mKey ;
00350 /// <summary>
00351 /// احصل على القيمة الرئيسية للقيمة المقابلة أو قم بتعيينها
00352 / // </summary >
00353 public string Key
00354 {
00355 get
00356 {
00357 return mKey ;
00359
set
00360 {
00361 mKey = value ;
00363 }
00364
/// <summary>
00365 /// احصل على البرنامج النصي للعملية
00366 /// </ ملخص>
00367 /// <returns>string</returns>
00368 public string GetScript ( stringparent )
00369 {
00370 returnparent +"document.all(' "+ID +" ').value=" +parent +"__AnalyseString(' "+Key +"
',getvalue);" ;
00371
}
00372
}
00373
public
class
ReturnElementCollections
: System .
إرجاع ((ReturnElement) قائمة [فهرس] ])
;
-------------------------------------------------- ----------------------------------
00381 مجموعة
00382 {
00383 List [index ] = value ;
00384 }
00385 }
00386
00387 public int Add ( ReturnElement value )
00388 {
00389 return ( List . Add ( value ) )
}
00391
00392 public int IndexOf ( ReturnElement value ) )
00 393 {
00394 return ( List . IndexOf ( value ) );
00396
00397
public voidInsert
( int Index , ReturnElement value )
00398
{
00399
List .
00403 {
00404
00405 List . Remove ( value );
00406 }
00407
00408 public bool يحتوي على ( ReturnElement value )
00409 {
00410 // إذا لم تكن القيمة من النوع Int16، فسيُرجع هذا خطأ
00411 ( List . يحتوي على ( value ) ) . 00412
}
00413 }
00414 #endregion
00415 }