Das Schreiben von Skripten während der Entwicklung von ASP.NET-Anwendungen ist eine sehr lästige Sache. Tatsächlich können wir häufig verwendete Skripte in entsprechende .NET-Komponenten installieren und auf dem Server aufrufen. Dies kann das Schreiben von Skripten erheblich vereinfachen und die Wiederverwendung verbessern Skripte.
Das Folgende ist ein häufig verwendeter Klassenaufruf, um ein modales Formular zu öffnen und den Rückgabewert zu erhalten. Tatsächlich können Sie mehrere Parameter festlegen und unterschiedliche Rückgabewerte für verschiedene Steuerelemente erhalten.
Definieren Sie eine Skriptklasse, die das Formular öffnet und den Rückgabewert festlegt.
HFSoft.Web.Scripts.ShowModalDialog dialog=new HFSoft.Web.Scripts.ShowModalDialog(
XXX.Units.Config.WebBoot+"Appunit/WindowOpenDialog.aspx",
FrmFailureLogSearch.PageURI());
dialog.Height=400;
dialog.Width=600;
dialog.ReturnElements.Add(new HFSoft.Web.Scripts.ReturnElement(this.txtReturn.ClientID,"ReturnString"));
HFSoft.Web.Scripts.RegisterScript.RegiOnClick(cmdSearch,dialog);
Code zum Öffnen des Formulars und Festlegen des Rückgabewerts
HFSoft.Web.Scripts.ReturnValues returnValue=new HFSoft.Web.Scripts.ReturnValues();
returnValue.Add("ReturnString",filter);
HFSoft.Web.Scripts.RegisterScript.RegiPageClient(this, „return“, returnValue);
Öffnen Sie den Code der Formularklasse (tatsächlich können viele Skripte auf diese Weise gekapselt werden).
00006 Namespace HFSoft . Web . Skripte
00007 {
00008 /// <Zusammenfassung>
00009 /// Erstellen Sie eine offene Formularskriptklasse
00010 /// Hinweis: Das vom Rückgabewertparameter data empfangene Datenformat muss
00011 /// key=
seinvalue|key1 =value1|.....
00012 /// </summary>
00013 öffentliche Klasse ShowModalDialog : IExecuteScript
00014 {
00015 private const string _Dialog ="window.showModalDialog({0},' ',' dialogHeight : { 1 } px ;
dialogWidth : { 2
}
px
; ;
00018 / // <summary>
00019 /// Müssen Sie den übergeordneten Zeiger laden?
00020 /// </summary>
00021 public bool Parent
00022 {
00023 get
00024 {
00025 // TODO: SetElementsValue.Parent-Getter zur Implementierung hinzufügen
00026 return mParent ;
00027 }
00028 set
00029 {
00030 // TODO: SetElementsValue.Parent hinzufügen, um
00031 mParent = value ;
00032
}
00034 private string GetParent ()
00035 {
00036 if (Parent)
000 37 gibt „übergeordnet“ zurück. ;
00038 return "" ;
00039 }
00040 /// <summary>
00041 /// Objekt erstellen
00042 /// </summary>
00043 /// <param name="pageContainer">Containerseite</param>
00044 // / <param name="openPage" >Seite öffnen</param>
00045 public ShowModalDialog ( string pageContainer , string openPage )
00046
{
00047 PageContainer = pageContainer
;
00049 }
00050 public const string PageUrlTag ="pageurl" ;
/// <summary >
00052 /// Skript generieren
00053 /// </summary>
00054 /// <returns>string</returns>
00055 public string Execute ()
00056 {
00057 // TODO: ShowModalDialog.Execute-Implementierung hinzufügen
00058 string url=" ' " + PageContainer +" ? pageurl ='+" + GetPage ();
00059
url = string .
00060 url = GetParent () + url ;
ReturnElements . Count >0 )
00062 {
00063 url = "var getvalue=" + url +";if(getvalue != null){" ;
00064 foreach ( ReturnElement item in ReturnElements )
00065 {
00066 url += item ());
-------------------------------------------------- ----------------------------------
00067 }
00068 url +="}" ;
00070 }
00071 url zurück+
";"
00073
00074
#endregion
00076
/// <summary>
077 /// Abrufen oder Festlegen der Containerseite (einschließlich Pfad)
00078 /// </summary>
00079 public string PageContainer
00080 {
00081 get
00082 {
00083 return mPageContainer ;
00084 }
00085 set
00086 {
00087 mPageContainer = value ;
00088 }
000 89 }
00090 private Zeichenfolge mOpenPage ;
00091 /// <summary>
00092 /// Seite öffnen (einschließlich Pfad)
00093 /// </summary>
00094 public string OpenPage
00095 {
00096 get
00097 {
00098 return mOpenPage ;
00099 }
00100 set
00101 {
00102 mOpen Seite = value ;
00103 }
00104 }
00105 private int mHeight =400;
00106 /// <summary>
00107 /// Höhe des geöffneten Formulars abrufen oder festlegen
00108 /// </summary>
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;
00121 /// <summary>
00122
///
/ < /summary>
00124 public int Breite
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 /// Get the return value element set
00138 /// </summary>
00139 public ReturnElementCollections
00140 {
00 141 get
00142 {
00143 return mReturnElements ;
00145
}
00146 private ParameterCollection ();
00147 /// <summary>
00148 /// Holen Sie sich den Parametersatz der geöffneten Seite
00149 /// </summary>
00150 public ParameterCollection Parameters
00151 {
00152 get
00153 {
00154 return mParameters ;
00155 }
00156 }
00157 private string GetPage ()
00158 {
00159 if ( Parameters . Count ==0)
00160 return "' "+OpenPage+" '" ;
001 61 System . Text StringBuilder .
00162 sb
;00163
string parent =
( int i = 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 enum ElementType
0 0192 {
00193 None,
00194 Element,
00195 Select
-------------------------------------------------- ----------------------------------
00196 }
00197 /// <summary>
00198 /// Parameterbeschreibungsklasse
00199 /// </summary>
00200 öffentliche Klasse Parameter
00201 {
00202 /// <summary>
00203 /// Parameterobjekt erstellen
00204 /// </ summary>
00205 public Parameter ()
00206 {
00207 }
00208 /// <summary>
00209 /// Konstruieren Sie ein Parameterobjekt mit dem angegebenen Namen und Wert.
00210 /// </summary>
00211 /// <param name="name "> Parametername</param>
00212 /// <param name="value">Parameterwert</param>
00213 öffentlicher Parameter (String-Name, String-Wert)
00214 {
00215 Name = Name ;
00216 Wert = Wert ;
00217 }
00218 / // <summary>
00219 /// Konstruieren Sie ein Parameterobjekt mit dem angegebenen Namen und Wert.
00220 /// </summary>
00221 /// <param name="name">Parametername</param>
00222 /// <param name ="value">Parameterwert</param>
00223 /// <param name="iselement">Ist der Wert der Elementname</param>
00224 öffentlicher Parameter (Stringname, Stringwert, ElementType-Element)
00225 {
00226 Name = name ;
00227 Value = value ;
00229
}
00230
00231 private string mName ;
00232
/// Parametername abrufen oder festlegen
00234 ///
</summary> public string Name
00236 {
00237 get
00238 {
00239 return mName ;
00240 }
00241 set
00242 {
00243 mName = value ;
00245
}
00246 private string mValue ;
00247 /// <summary>
00248 /// Get oder den Parameterwert einstellen
00249 /// </summary >
00250 public string Value
00251 {
00252 get
00253 {
00254 return mValue ;
00255 }
00256 set
00257 {
00258 mValue = value ;
-------------------------------------------------- ----------------------------------
00259 }
00260 }
00261 private ElementType mElement = ElementType ;
00262 /// <summary>
00263 /// Abrufen oder Festlegen, ob der Parameterwert der Parametername ist
00264 /// </summary>
00265 public ElementType Element
00266 {
00267 get
00268 {
00269 return mElement ;
00270 }
00271 set
00272 {
00273 mElement = value ;
00275
}
00276
public class ParameterCollection : System . CollectionBase
00279
public Parameter this [ int index ]
00280 {
0 0281 erhält
00282 {
00283 return ( ( Parameter ) List [ index ] );
00284 }
00285 set
00286 {
00287 List [ index ] = value ;
00288 }
00289 }
00290
00291 public int Add ( Parameter value )
00292 {
00293 return ( List . Add ( value ));
00294 }
00295
00296 public int IndexOf (Parameterwert)
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 ;
00310 }
00311
00312 public bool Enthält ( Parameter value )
00313 {
00314 // Wenn value nicht vom Typ Int16 ist, ist dies der Fall gibt false zurück.
00315 return(
List . Includes(
value )
)
;
-------------------------------------------------- ----------------------------------
00320 /// Rückgabewert empfangendes Element Beschreibungsklasse
00321 /// </summary>
00322 öffentliche Klasse ReturnElement
00323 {
00324 /// <summary>
00325 /// Objekt erstellen
00326 /// </summary>
00327 /// < param name="id">Element-ID, die den Wert empfängt</param>
00328 /// <param name="key">Schlüsselwert des entsprechenden Werts</param>
00329 public ReturnElement ( string id , string key )
00330 {
00331 ID = id ;
00332 Key = key ;
00333 }
00334 private string mID ;
00335 /// <summary>
00336 /// Abrufen oder Festlegen der Element-ID
00337 /// </summary>
00339
{
00340 get
00341 {
00342 return mID ;
00343 }
00344 set
00345 {
00346 mID = value ;
00347 }
00348 }
00349 private string mKey ;
00350 /// <summary>
00351 /// Holen oder setzen Sie den Schlüsselwert des entsprechenden Werts
00352 / // </summary >
00353 public string Key
00354 {
00355 get
00356 {
00357 return mKey ;
00358 }
00359 set
00360 {
00361 mKey = value ;
00362 }
00363 }
00364 /// <summary>
00365 /// Get operation script
00366 /// </ summary>
00367 /// <returns>string</returns>
00368 public string GetScript ( string parent )
00369 {
00370 return parent +"document.all(' "+ID +" ').value=" + parent +"__AnalyseString(' "+Key +"
',getvalue);"
public class ReturnElementCollections . CollectionBase
00374
{
00375
public
ReturnElement this [ int index ]
00378
{
00379
return ( ( ReturnElement ) List [ index ] )
;
-------------------------------------------------- ----------------------------------
00381 set
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 void Insert ( int index , ReturnElement value )
00398 {
00399 List . Insert ( index , value );
00401
00402
public void Remove ( ReturnElement value )
00403 {
00404
00405 List . Remove ( value )
;
00407
00408 public bool Contains ( ReturnElement value )
00409 {
00410 // Wenn value nicht vom Typ Int16 ist, wird false zurückgegeben.
00411 return ( List . Contains ( value ) ) ;
00412 }
00413 }
00414 #endregion
00415 }