Escribir scripts durante el desarrollo de aplicaciones ASP.NET es algo muy molesto. De hecho, podemos instalar scripts de uso común en los componentes .NET correspondientes y llamarlos en el servidor. Esto puede simplificar enormemente la escritura de scripts y mejorar su reutilización. Scripts.
La siguiente es una llamada de clase de uso común para abrir un formulario modal y obtener el valor de retorno. De hecho, puede establecer múltiples parámetros y obtener diferentes valores de retorno para diferentes controles.
Defina una clase de script que abra el formulario y establezca el valor de retorno.
HFSoft.Web.Scripts.ShowModalDialog dialog=nuevo HFSoft.Web.Scripts.ShowModalDialog(
XXX.Units.Config.WebBoot+"Appunit/WindowOpenDialog.aspx",
FrmFailureLogSearch.PageURI());
diálogo.Altura=400;
diálogo.Ancho=600;
dialog.ReturnElements.Add(new HFSoft.Web.Scripts.ReturnElement(this.txtReturn.ClientID,"ReturnString"));
código de diálogo para abrir el formulario y establecer el valor de retorno
);
HFSoft.Web.Scripts.ReturnValues returnValue=nuevo HFSoft.Web.Scripts.ReturnValues();
returnValue.Add("ReturnString",filtro);
HFSoft.Web.Scripts.RegisterScript.RegiPageClient(this, "return", returnValue
abre el código de la clase de formulario (de hecho, muchos scripts se pueden encapsular de esta manera).
00006 espacio de nombres HFSoft Web Scripts
00007 {
00008 /// <summary>
00009 /// Crear una clase de script de formulario abierto
00010 /// Nota: El formato de datos recibido por los datos del parámetro de valor de retorno debe ser
00011 /// clave=. valor|clave1 =valor1|.....
00012 /// </summary>
00013 clase pública ShowModalDialog: IExecuteScript
00014 {
00015 cadena constante privada _Dialog ="window.showModalDialog({0},' ',' dialogHeight: { 1 } px;
ancho de diálogo: { 2 } px; borde: elevado; centro: sí; ayuda: no; tamaño variable: no; desplazamiento:
sí;');";
00016 miembro IExecuteScript 00017
mParent privado 00018
// <summary>
00019 /// ¿Necesita cargar el puntero principal
00020 /// </summary>
00021 public bool Parent
00022 {
00023 get
00024 {
00025 // TODO: Agregar el getter SetElementsValue.Parent para implementar
00026 return mParent;
00027}
00028
set
00029 {
00030 //TODO
: Agregar SetElementsValue.Parent setter para implementar
00031 mParent = valor;
7
devuelve
"padre"
.
;
00038 return "" ;
00039 }
00040 /// <summary>
00041 /// Construir objeto
00042 /// </summary>
00043 /// <param name="pageContainer">Página contenedor</param>
00044 // / <param name="openPage" >Abrir página</param>
00045 public ShowModalDialog (cadena pageContainer, cadena openPage)
00046 {
00047 PageContainer = pageContainer;
00048 OpenPage = openPage
}
00050 public const string PageUrlTag="pageurl";
1 /// <summary >
00052 /// Generar script
00053 /// </summary>
00054 /// <returns>string</returns>
00055 public string Execute ()
00056 {
00057 // TODO: Agregar implementación ShowModalDialog.Execute
00058 cadena url =" '"
+ PageContainer + "? pageurl ='+" + GetPage ();
00059 url = cadena (_Dialog, url, Alto, Ancho
00060 url = GetParent () + url;
ReturnElements. Cuenta >0)
00062 {
00063 url = "var getvalue=" + url +";if(getvalue!= null){"
00064 foreach (elemento ReturnElement en ReturnElements)
00065 {
00066 url += elemento. ());
-------------------------------------------------- ----------------------------------
00067 }
00068 URL +="}" ;
00069
URL de retorno +";"
00070
}
00071
URL
de retorno +";"
00076 /// <resumen>
00077 /// Obtener o configurar la página contenedora (incluida la ruta)
00078 /// </summary>
00079 public string PageContainer
00080 {
00081 get
00082 {
00083 return mPageContainer
00084 }
00085 set
00086 {
00087 mPageContainer = value ;
89
}
00090 cadena privada mOpenPage ;
00091 /// <summary>
00092 /// Abrir página (incluida la ruta)
00093 /// </summary>
00094 public string OpenPage
00095 {
00096 get
00097 {
00098 return mOpenPage
}
00100 set
00101 {
00102 mPágina Abierta = value ;
00103 }
00104 }
00105 private int mHeight =400;
00106 /// <summary>
00107 /// Obtener o establecer la altura del formulario abierto
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 /// Obtener o establecer el ancho del formulario abierto
00123 // / < /summary>
00124 public int Ancho
00125 {
00126 get
00127 {
00128 return mWidth
}
00130 set
00131 {
-------------------------------------------------- ----------------------------------
00132 mWidth = valor;
00133 }
00134 }
00135 private ReturnElementCollections mReturnElements = new ReturnElementCollections ();
00136 /// <summary>
00137 /// Obtener el conjunto de elementos de valor de retorno
00138 /// </summary>
00139 public ReturnElementCollections ReturnElements
0 0140 {
00 141 get
00142 {
00143 return mReturnElements ;
00145
}
00146 private ParameterCollection mParameters = new ParameterCollection ();
00147 /// <summary>
00148 /// Obtener el conjunto de parámetros de la página abierta
00149 /// </summary>
00150 Parámetros públicos de ParameterCollection
00151 {
00152 get
00153 {
00154 return mParameters ;
00155 }
00156 }
00157 cadena privada GetPage ()
00158 {
00159 if (Parámetros. Count ==0)
00160 return "' "+OpenPage+" '" ;
00161 Sistema . Texto StringBuilder = nuevo Sistema . Texto StringBuilder ();
00164
cadena padre = GetParent (
)
; 0; i < Parámetros . Recuento ; i ++)
00166 {
00167 if ( Parámetros [ i ]. Elemento == Tipo de elemento . Elemento )
00168 {
00169 param ="' " + Parámetros [i]. Nombre +" =' + " + padre +" document.all('
"+Parámetros[i].Valor + " ').valor" ;
00170 }
00171 else if (Parámetros [i]. Elemento == Tipo de elemento. Seleccionar)
00172 {
00173 parámetro="' " + Parámetros[ i].Nombre +" =' + " + padre +"__getSeletedButton(" + padre +
"document.all(' "+Parámetros[i].Valor + " '))" ;
00174 }
00175 if ( i ==0 )
00176 {
00177 sb . Agregar ("+' "+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 Ninguno,
00194 Elemento,
00195 Seleccionar
-------------------------------------------------- ----------------------------------
00196 }
00197 /// <summary>
00198 /// Clase de descripción del parámetro
00199 /// </summary>
00200 clase pública Parámetro
00201 {
00202 /// <summary>
00203 /// Construir objeto de parámetro
00204 /// </ resumen>
00205 parámetro público ()
00206 {
00207 }
00208 /// <summary>
00209 /// Construye un objeto de parámetro con el nombre y valor especificados
00210 /// </summary>
00211 /// <param name="nombre "> Nombre del parámetro</param>
00212 /// <param nombre="valor">Valor del parámetro</param>
00213 Parámetro público (nombre de cadena, valor de cadena)
00214 {
00215 Nombre = nombre;
00216 Valor = valor;
00217 }
00218 / // <summary>
00219 /// Construir un objeto de parámetro con el nombre y valor especificados
00220 /// </summary>
00221 /// <param name="name">Nombre de parámetro</param>
00222 /// <param name ="value">Valor del parámetro</param>
00223 /// <param name="iselement">Es el valor el nombre del elemento</param>
00224 public Parámetro (nombre de cadena, valor de cadena, elemento ElementType)
00225 {
00226 Nombre = nombre ;
00227Valor
= valor ;
00228 Elemento = elemento ;
00229 }
00230
00231 cadena privada mName
00232 ///
<summary>
00235
cadenapública
Nombre
00236 {
00237 obtener
00238 {
00239 devolver mName ;
00240 }
00241
set
00242 {
00243 mName = valor ;
establecer
el
valor del parámetro
00249 /// </summary>
00250 valor de cadena pública
00251 {
00252 obtener
00253 {
00254 devolver mValue
00255 }
00256 establecer
00257 {
00258 mValue = valor ;
-------------------------------------------------- ----------------------------------
00259 }
00260 }
00261 private ElementType mElement = ElementType Ninguno ;
00262 /// <summary>
00263 /// Obtener o establecer si el valor del parámetro es el nombre del parámetro
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 Collections
00278 {
00279 public Parameter this [. índice int]
00280 {
0 0281 obtener
00282 {
00283 return ( (Parámetro) Lista [índice]);
00284}
00285 set
00286 {
00287 Lista [índice] = valor;
00288}
00289}
00290
00291 public int Agregar (Valor del parámetro)
00292 {
00293 return (Lista. Agregar (valor) ) );
00294 }
00295
00296 public int IndexOf ( valor del parámetro )
00297
{
00298
return ( List . IndexOf ( valor
)
)
;
valor);
00304}
00305
00306 public void Eliminar (valor del parámetro)
00307 {
00308
00309 Lista. Eliminar (valor)
00311
00312
public bool Contiene (valor del parámetro)
00313 {
00314 // Si el valor no es de tipo Int16, esto devolverá falso.
00315 return (Lista. Contiene (valor)
00316 }
00317
00318 }
00319 /// <resumen>);
-------------------------------------------------- ----------------------------------
00320 /// Valor de retorno que recibe la descripción del elemento clase
00321 /// </summary>
00322 public class ReturnElement
00323 {
00324 /// <summary>
00325 /// Construir objeto
00326 /// </summary>
00327 /// < param name="id">ID del elemento que recibe el valor</param>
00328 /// <param name="key">Valor clave del valor correspondiente</param>
00329 public ReturnElement (id de cadena, clave de cadena)
00330 {
00331 ID = id ;
00332
Clave
=
clave
;
00333
}
00334 cadenaprivada
mID ;
get
00341 {
00342 return mID ;
00343 }
00344 set
00345 {
00346 mID = value ;
00347 }
00348 }
00349 private string mKey
00350 /// <summary>
00351 /// Obtener o establecer el valor clave del valor correspondiente
00352 / // </summary >
00353 clave de cadena pública
00354 {
00355
get
00356 {
00357 returnmKey
;
00358 }
00359
set
00360
{
00361 mKey = valor ;
00366
/// </ resumen>
00367 /// <returns>string</returns>
00368 cadena pública GetScript ( cadena padre )
00369 {
00370 return padre +"document.all(' "+ID +" ').value=" + padre +"__AnalyseString (' "+Clave +"
',getvalue);"
00371 }
00372 }
00373 clase pública ReturnElementCollections: Sistema CollectionBase
00374 {
00375 public ReturnElement this [ int index ]
00376 {
00377 get
00378 {
00379 return ((ReturnElement) Lista [índice])
;
-------------------------------------------------- ----------------------------------
00381 set
00382 {
00383 Lista [índice] = valor;
00384}
00385}
00386
00387
publicint
Agregar (valor de ReturnElement)
00388 {
00389 return (Lista. Agregar (valor));
valor )
00 393 {
00394 return (Lista. IndexOf (valor));
00395}
00396
00397 public void Insertar (índice int, valor de ReturnElement)
00398 {
00399 Lista Insertar (índice, valor)
00401
00402
public void Eliminar (valor de ReturnElement)
00403 {
00404
00405 Lista. Eliminar (valor
00406}
00407
00408 public bool Contiene (valor de ReturnElement)
00409 {
00410 // Si el valor no es de tipo Int16, devolverá falso
00411 (Lista. Contiene (valor)) ;
00412 }
00413 }
00414 #endregion
00415 }