L'écriture de scripts lors du développement d'applications ASP.NET est une chose très ennuyeuse. En fait, nous pouvons installer des scripts couramment utilisés dans les composants .NET correspondants et les appeler sur le serveur. Cela peut grandement simplifier l'écriture de scripts et améliorer la réutilisation des scripts. Scripts.
Ce qui suit est un appel de classe couramment utilisé pour ouvrir un formulaire modal et obtenir la valeur de retour. En fait, vous pouvez définir plusieurs paramètres et obtenir différentes valeurs de retour pour différents contrôles.
Définissez une classe de script qui ouvre le formulaire et définit la valeur de retour.
HFSoft.Web.Scripts.ShowModalDialog dialog=nouveau HFSoft.Web.Scripts.ShowModalDialog(
XXX.Units.Config.WebBoot+"Appunit/WindowOpenDialog.aspx",
FrmFailureLogSearch.PageURI());
dialogue.Hauteur=400 ;
dialogue.Largeur=600 ;
dialog.ReturnElements.Add(new HFSoft.Web.Scripts.ReturnElement(this.txtReturn.ClientID,"ReturnString"));
HFSoft.Web.Scripts.RegisterScript.RegiOnClick(cmdSearch,dialog);
code pour ouvrir le formulaire et définir la valeur de retour
HFSoft.Web.Scripts.ReturnValues returnValue=new HFSoft.Web.Scripts.ReturnValues();
returnValue.Add("ReturnString",filter);
HFSoft.Web.Scripts.RegisterScript.RegiPageClient(this, "return", returnValue);
Ouvre le code de la classe form (en fait, de nombreux Scripts peuvent être encapsulés de cette manière).
00006 espace de noms HFSoft . Web . Scripts
00007 {
00008 /// <summary>
00009 /// Créer une classe de script de formulaire ouvert
00010 /// Remarque : Le format de données reçu par le paramètre de valeur de retour data doit être
00011 /// key= value|key1 =value1|.....
00012 /// </summary>
00013 public class ShowModalDialog : IExecuteScript
00014 {
00015 private const string _Dialog ="window.showModalDialog({0},' ',' dialogHeight : { 1 } px ;
dialogWidth : { 2 } px ; edge : Raised ; center : Oui ; redimensionnable : Non ; scroll :
Oui ;');" ;
00016 #region IExecuteScript member
00017 private bool mParent = false ;
00018 / // <summary>
00019 /// Avez-vous besoin de charger le pointeur parent
00020 /// </summary>
00021 public bool Parent
00022 {
00023 get
00024 {
00025 // TODO : Ajouter le getter SetElementsValue.Parent à implémenter
00026 return mParent ;
00027 }
00028 set
00029 {
00030 // À FAIRE : ajouter le setter SetElementsValue.Parent pour implémenter
00031 mParent = value ;
00032 }
00033 }
00034 chaîne privée GetParent ()
00035 {
00036 if ( Parent )
00037 renvoie "parent". ;
00038 return "" ;
00039 }
00040 /// <summary>
00041 /// Objet de construction
00042 /// </summary>
00043 /// <param name="pageContainer">Page conteneur</param>
00044 // / <param name="openPage" >Ouvrir la page</param>
00045 public ShowModalDialog ( string pageContainer , string openPage )
00046 {
00047 PageContainer = pageContainer ;
00048
OpenPage = openPage ;
00050
public const string PageUrlTag ="pageurl" ;
/// <summary >
00052 /// Générer un script
00053 /// </summary>
00054 /// <returns>string</returns>
00055 public string Execute ()
00056 {
00057 // TODO : Ajouter l'implémentation de ShowModalDialog.Execute
00058 string url =" '"
+ PageContainer +" ? pageurl = '+" + GetPage ();
00059
url = string . Format ( _Dialog , url , Hauteur , Largeur );
ReturnElements . Count >0 )
00062 {
00063 url = "var getvalue=" + url +";if(getvalue != null){" ;
00064 foreach ( élément ReturnElement dans ReturnElements )
00065 {
00066 url += GetScript ( GetParent . ());
-------------------------------------------------- ----------------------------------
00067 }
00068 url +="}" ;
00069
return url +";" ;
00070 }
00071 return url +";" ;
00073
00074
#endregion
00075 chaîne privée mPageContainer ;
/
Récupère ou définit la page du conteneur (y compris le chemin)
00078 /// </summary>
00079 public string PageContainer
00080 {
00081 get
00082 {
00083 return mPageContainer ;
00084 }
00085 set
00086 {
00087 mPageContainer = value ;
00090
chaîne
privée mOpenPage ;
00091 /// <summary>
00092 /// Ouvrir la page (y compris le chemin)
00093 /// </summary>
00094 public string OpenPage
00095 {
00096 get
00097 {
00098 return mOpenPage
00099 }
00100 set
00101 {
00102 mOpenPage = value ;
00103 }
00104 }
00105 private int mHeight =400;
00106 /// <summary>
00107 /// Obtient ou définit la hauteur du formulaire ouvert
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 /// Obtient ou définit la largeur du formulaire ouvert
00123 // / < /summary>
00124 public int Largeur
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 /// Obtenir l'ensemble d'éléments de valeur de retour
00138 /// </summary>
00139 public ReturnElementCollections ReturnElements
00140 {
00 141 get
00142 {
00143 return mReturnElements ;
00144 }
00145 }
00146 private ParameterCollection mParameters = new ParameterCollection ();
00147 /// <summary>
00148 /// Récupère le jeu de paramètres de la page ouverte
00149 /// </summary>
00150 public ParameterCollection Paramètres
00151 {
00152 get
00153 {
00154 return mParameters ;
00155 }
00156 }
00157 private string GetPage ()
00158 {
00159 if ( Parameters . Count ==0)
00160 return "' "+OpenPage+" '" ;
00161 Système . Texte StringBuilder sb = new System . StringBuilder ();
00162 sb . Ajouter ("' "+OpenPage+" '" );
00163
string parent = GetParent ()
; 0; i < Paramètres . Nombre ; i ++)
00166 {
00167 if ( Paramètres [ i ]. Element == ElementType . Element )
00168 {
00169 param ="' " + Paramètres[i].Nom +" =' + " + parent +" document.all('
"+Parameters[i].Value + " ').value" ;
00170 }
00171 else if ( Paramètres [ 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 Aucun,
00194 Élément,
00195 Sélectionner
-------------------------------------------------- ----------------------------------
00196 }
00197 /// <summary>
00198 /// Classe de description de paramètre
00199 /// </summary>
00200 public class Parameter
00201 {
00202 /// <summary>
00203 /// Objet de paramètre de construction
00204 /// </ summary>
00205 public Parameter ()
00206 {
00207 }
00208 /// <summary>
00209 /// Construire un objet paramètre avec le nom et la valeur spécifiés
00210 /// </summary>
00211 /// <param name="name "> Nom du paramètre</param>
00212 /// <param name="value">Valeur du paramètre</param>
00213 public Paramètre ( nom de chaîne , valeur de chaîne )
00214 {
00215 Nom = nom ;
00216 Valeur = valeur ;
00217 }
00218 / // <summary>
00219 /// Construire un objet paramètre avec le nom et la valeur spécifiés
00220 /// </summary>
00221 /// <param name="name">Nom du paramètre</param>
00222 /// <param name ="value">Valeur du paramètre</param>
00223 /// <param name="iselement">La valeur est-elle le nom de l'élément</param>
00224 Paramètre public (nom de chaîne, valeur de chaîne, élément ElementType)
00225 {
00226 Nom = nom ;
00227 Valeur = valeur ;
00228 Élément = élément ;
00229 }
00230
00231 chaîne privée mName ;
00232 /// <summary>
00233 /// Obtenir ou définir le nom du paramètre
00234 /// </summary>
00235. public string Name
00236 {
00237 get
00238 {
00239 return mName ;
00240 }
00241 set
00242 {
00243 mName = value ;
00244 }
00245 }
00246 private string mValue
00247 /// <summary>
00248 /// Obtenir ou définir le paramètre ; valeur
00249 /// </summary >
00250 chaîne publique 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 /// Obtient ou définit si la valeur du paramètre est le nom du paramètre
00264 /// </summary>
00265 public ElementType Element
00266 {
00267. get
00268 {
00269 return mElement ;
00270 }
00271 set
00272 {
00273 mElement = value ;
00274 }
00275 }
00276 }
00277 public class ParameterCollection : System CollectionBase
00278 {
00279 public Parameter this [ in . t indice ]
00280 {
0 0281 obtenir
00282 {
00283 return ( ( Paramètre ) Liste [ index ] );
00284 }
00285 set
00286 {
00287 Liste [ index ] = valeur ;
00288 }
00289 }
00290
00291 public int Ajouter ( Valeur du paramètre )
00292 {
00293 return ( Liste . Ajouter ( valeur ) );
00294 }
00295
00296 public int IndexOf ( Valeur du paramètre )
00297 {
00298 return ( List . IndexOf ( valeur ) );
00300
00301
public void Insert ( int index , Valeur du paramètre )
00302 {
00303 List . value );
00304 }
00305
00306 public void Remove ( Valeur du paramètre )
00307 {
00308
00309 List . Remove ( value );
00310 }
00311
00312 public bool Contains ( Valeur du paramètre )
00313 {
00314 // Si la valeur n'est pas de type Int16, ceci renverra false
00315 return ( List . Contains ( value ) );
00317
00318
}
00319 /// <summary>
-------------------------------------------------- ----------------------------------
00320 /// Valeur de retour classe de description de l'élément de réception
00321 /// </summary>
00322 classe publique ReturnElement
00323 {
00324 /// <summary>
00325 /// Objet de construction
00326 /// </summary>
00327 /// < param name="id">ID d'élément qui reçoit la valeur</param>
00328 /// <param name="key">Valeur clé de la valeur correspondante</param>
00329 public ReturnElement ( string id , string key )
00330 {
00331 ID = id ;
00332 Key = key ;
00333 }
00334 private string mID ;
00335 /// <summary>
00336 /// Obtenir ou définir l'ID d'élément
00337 /// </summary>
00338 public string ID
00339 {
00340 get
00341 {
00342 return mID ;
00343 }
00344 set
00345 {
00346 mID = value ;
00347 }
00348 }
00349 private string mKey
00350 /// <summary>
00351 /// Obtenir ou définir la valeur clé de la valeur correspondante
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 /// Obtenir le script d'opération
0 0366 /// </ summary>
00367 /// <returns>string</returns>
00368 public string GetScript ( string parent )
00369 {
00370 return parent +"document.all(' "+ID +" ').value=" + parent +"__AnalyseString (' "+Key +"
',getvalue);" ;
00371 }
00372 }
00373 public class ReturnElementCollections : CollectionBase
00374 {
00375 public ReturnElement this [ int index ]
00376 {
00377 get
00378 {
00379. return ( ( ReturnElement ) Liste [ index ] )
;
-------------------------------------------------- ----------------------------------
00381 set
00382 {
00383 List [ index ] = valeur ;
00384 }
00385 }
00386
00387 public int Add ( valeur ReturnElement )
00388 {
00389 return ( List . Add ( valeur
)}
00391
00392 public int IndexOf ( ReturnElement ); valeur )
00 393 {
00394 return ( List . IndexOf ( valeur ) );
00395 }
00396
00397 public void Insert ( int index , ReturnElement valeur )
00398 {
00399 List . Insérer ( index , valeur
00400 }
00401
00402 public void Remove ( ReturnElement valeur )
00403 {
00404
00405 List . Remove ( value );
00406 }
00407
00408 public bool Contains ( ReturnElement value )
00409 {
00410 // Si la valeur n'est pas de type Int16, cela renverra false
00411 return ( List . Contains ( value ) ) ;
00412 }
00413 }
00414 #endregion
00415 }