Escrever scripts durante o desenvolvimento de aplicativos ASP.NET é uma coisa muito chata. Na verdade, podemos instalar scripts comumente usados em componentes .NET correspondentes e chamá-los no servidor. Scripts.A
seguir está uma chamada de classe comumente usada para abrir um formulário modal e obter o valor de retorno. Na verdade, você pode definir vários parâmetros e obter diferentes valores de retorno para diferentes controles.
Defina uma classe de script que abra o formulário e defina o valor de retorno.
Diálogo HFSoft.Web.Scripts.ShowModalDialog = novo HFSoft.Web.Scripts.ShowModalDialog (
XXX.Units.Config.WebBoot+"Appunit/WindowOpenDialog.aspx",
FrmFailureLogSearch.PageURI());
diálogo.Altura=400;
diálogo.Largura=600;
dialog.ReturnElements.Add(new HFSoft.Web.Scripts.ReturnElement(this.txtReturn.ClientID,"ReturnString"));
cmdSearch
,dialog);
HFSoft.Web.Scripts.ReturnValues returnValue=new HFSoft.Web.Scripts.ReturnValues();
returnValue.Add("ReturnString",filtro);
HFSoft.Web.Scripts.RegisterScript.RegiPageClient(this, "return", returnValue);
Abra o código da classe do formulário (na verdade, muitos scripts podem ser encapsulados desta forma).
00006 namespace HFSoft Web .
00007 {
00008 /// <summary>
00009 /// Cria uma classe de script de formulário aberto
00010 /// Nota: O formato dos dados recebidos pelos dados do parâmetro de valor de retorno deve ser
00011 /// key= valor|key1 =valor1|.....
00012 /// </summary>
00013 public class ShowModalDialog : IExecuteScript
00014 {
00015 private const string _Dialog ="window.showModalDialog({0},' ',' dialogHeight : { 1 } px;
dialogWidth: { 2 } px; borda: levantada; centro: Sim; não; redimensionável: não; rolagem:
sim;";
00016 #region IExecuteScript member
00017 private bool mParent = false ;
00018 // <summary>
00019 /// Você precisa carregar o ponteiro pai
00020 /// </summary>
00021 public bool Parent
00022 {
00023 get
00024 {
00025 // TODO: Adicionar SetElementsValue.Parent getter para implementar
00026 return mParent
00027 }
00028
set
00029 {
00030 //TODO
: Adicionar setter SetElementsValue.Parent para implementar
00031 mParent = value ;
7
retorne
"pai
". ;
00038 return "" ;
00039 }
00040 /// <summary>
00041 /// Construir objeto
00042 /// </summary>
00043 /// <param name="pageContainer">Página do contêiner</param>
00044 // / <param name="openPage" >Abrir página</param>
00045 public ShowModalDialog ( string pageContainer , string openPage )
00046 {
00047 PageContainer = pageContainer ;
00048 OpenPage = openPage
}
00050 public const string PageUrlTag ="pageurl" ;
1 /// <summary >
00052 /// Gerar script
00053 /// </summary>
00054 /// <returns>string</returns>
00055 public string Execute ()
00056 {
00057 // TODO: Adicionar implementação ShowModalDialog.Execute
00058 string url="' "+
PageContainer +" ? pageurl ='+" + GetPage (
)
;
ReturnElements .Contagem >0 )
00062 {
00063 url = "var getvalue=" + url +";if(getvalue != null){" ;
00064 foreach ( item ReturnElement em ReturnElements )
00065 {
00066 url += item . ());
-------------------------------------------------- ----------------------------------
00067 }
00068 url +="}"
00069
return url +";"
00070 }
00071 return url +";"
00073
00074
#endregion
00075 private string mPageContainer ;
///
Obtenha ou defina a página do contêiner (incluindo o caminho)
00078 /// </summary>
00079 public string PageContainer
00080 {
00081 get
00082 {
00083 return mPageContainer ;
00085
set
00086 {
00087 mPageContainer = value ;
89
}
00090 sequência privada mOpenPage
;
mOpenPage
=
value
;
{
00113 return mHeight ;
00115
set
00116 {
00117
mHeight=
value ;
00118 }
00119 }
00120 private int mWidth =400
;
/ < /summary>
00124 public int Largura
00125 {
00126
get
00127
{
00128 return mWidth
;
-------------------------------------------------- ----------------------------------
00132
mwidth
=
value
;
00 141 get
00142 {
00143return
mReturnElements ;
00144
}
00145 }
00146 private ParameterCollection mParameters = new ParameterCollection ()
;
00150 parâmetros public ParameterCollection
00151
{
00152
get
00153 {
00154
return mParameters
;
00161
Sistema
.
Texto StringBuilder .sb = new System . StringBuilder ()
;
00162
sb
.
0
;
i<
Parâmetros
Contagem ;
+ pai +" document.all('
"+
Parâmetros[i
].Valor+
" ').valor"
;
" + Parâmetros[ i].Name +" =' + " + pai +"__getSeletedButton(" + pai +
"document.all(' "+Parâmetros[i].Valor + " '))" ;
00174 }
00175 if ( i ==0 )
00176 {
00177 sb . Acrescentar ("+' "+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 Nenhum,
00194 Elemento,
00195 Selecionar
-------------------------------------------------- ----------------------------------
00196 }
00197 /// <summary>
00198 /// Descrição do parâmetro class
00199 /// </summary>
00200 public class Parâmetro
00201 {
00202 /// <summary>
00203 /// Construir objeto de parâmetro
00204 /// </ summary>
00205 public Parameter ()
00206 {
00207 }
00208 /// <summary>
00209 /// Construa um objeto de parâmetro com o nome e valor especificados
00210 /// </summary>
00211 /// <param name="name "> Nome do parâmetro</param>
00212 /// <param name="value">Valor do parâmetro</param>
00213 Parâmetro público (nome da string, valor da string)
00214 {
00215 Nome = nome;
00216 Valor = valor;
00217 }
00218 // <summary>
00219 /// Construa um objeto de parâmetro com nome e valor especificados
00220 /// </summary>
00221 /// <param name="name">Nome do parâmetro</param>
00222 /// <param name ="value">Valor do parâmetro</param>
00223 /// <param name="iselement">O valor é o nome do elemento</param>
00224 Parâmetro público (nome da string, valor da string, elemento ElementType)
00225 {
00226 Nome = nome ;
00227
Valor
=
valor ;
00228
Elemento = elemento ;
00230
00231
private string mName
;public string Nome
00236 {
00237 get
00238 {
00239 return mName ;
00240 }
00241 set
00242 {
00243 mName = value ;
00245
}
00246
private string mValue ;
definir o valor do parâmetro
00249 /// </summary >
00250 public string Valor
00251 {
00252 get
00253 {
00254 return mValue
00255 }
00256 set
00257 {
00258 mValue = value ;
-------------------------------------------------- ----------------------------------
00259 }
00260
}
00261
private
ElementType mElement
=
ElementType
.
get
00268
{
00269
return mElement;
00271
set
00272 {
00273mElement
= value;
[
índice int]
00280 {
0 0281
obtenha
00282
{
00283 return(
(Parâmetro
) Lista [índice]);
00285
set
00286
{
00287
Lista [índice] =
valor
;
)
);
00294 }
00295
00296 public int IndexOf ( valor do parâmetro )
00297
{
00298 return ( List . IndexOf ( valor
)
)
;
value
)
;
retornará falso
00315 return (Lista. Contém (
valor
)
)
;
-------------------------------------------------- ----------------------------------
00320 /// Valor de retorno que recebe a descrição do elemento class
00321 /// </summary>
00322 public class ReturnElement
00323 {
00324 /// <summary>
00325 /// Construir objeto
00326 /// </summary>
00327 /// < param name="id">ID do elemento que recebe o valor</param>
00328 /// <param name="key">Valor chave do valor correspondente</param>
00329 public ReturnElement ( string id , string key )
00330 {
00331 ID = id ;
00332
Key =key
;
00333
}
00334
private
string mID
;
get
00341 {
00342 returnmID
;
00343 }
00344 set
00345 {
00346
mID = value ;
00347 }
00348 }
00349
private string mKey ;
// </summary >
00353 public string Key
00354 {
00355 get
00356 {
00357
returnmKey
;
00358 }
00359
set
00360
{
00361 mKey = value ;
00366
/// </ summary>
00367 /// <returns>string</returns>
00368 public string GetScript (string parent)
00369 {
00370 return parent +"document.all(' "+ID +" ').value=" + pai +"__AnalyseString ('"+Key +"
'
,getvalue);"
00371
}
00372
}
00373
classe
pública
ReturnElementCollections : System .
return((ReturnElement)Lista[índice])
;
-------------------------------------------------- ----------------------------------
00381 set
00382 {
00383 List [índice] = valor;
00384 }
00385 }
00386
00387
public int Add ( ReturnElement valor )
00388 {
00389 return ( List . Add ( value ) ) ; valor
do
investimento)
00 393 {
00394 return(List.IndexOf(value));
00396
00397
public void Insert(
índice int, valor ReturnElement)
00398
{
00399 List Insert(índice, valor
)
.00403 {
00404
00405 List . Remove ( value );
00407
00408
public bool Contém ( ReturnElement value )
00409 {
00410 // Se o valor não for do tipo Int16, retornará false
00411 return ( List . Contém ( value ) ) ;
00412 }
00413 }
00414 #endregion
00415 }