·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> 让ASP.NET简便使用SCRIPT

让ASP.NET简便使用SCRIPT

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

在开发asp.net应用程序过程中编写Script是件很烦人的事情,其实我们可以把常用的Script装成相应的.NET组件在服务端调用,这样可以大大简化Script的编写还提高的Script的重用.

以下是常用的打开模式窗体并获取返回值的类调用,实际上可以给设置多个参数传入和不同控件获取不同返回值的结果.

定义打开窗体并设置返回值脚本类.
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);

打开窗体设置返回值的代码
HFSoft.Web.Scripts.ReturnValues returnValue=new HFSoft.Web.Scripts.ReturnValues();
returnValue.Add("ReturnString",filter);
HFSoft.Web.Scripts.RegisterScript.RegiPageClient(this,"return",returnValue);

打开窗体类的代码(其实很多Script都可以通过这样的方式来封装).
 
00006     namespace HFSoft . Web . Scripts

00007     {

00008         /// <summary> 

00009         /// 创建打开窗体脚本类 

00010         /// 注意:返回值参数据接收的数据格式必须 

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 : Yes ; help : No ; resizable : No ; status : No ; scroll : 

                     Yes ;');" ;

00016             #region IExecuteScript 成员

00017             private bool mParent = false ;

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             private string GetParent ()

00035             {

00036                 if ( Parent )

00037                     return "parent." ;

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 ;

00049             }

00050             public const string PageUrlTag ="pageurl" ;

00051             /// <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 . Format ( _Dialog , url , Height , Width );

00060                 url = GetParent () + url ;

00061                 if ( ReturnElements . Count >0)

00062                 {

00063                     url = "var getvalue=" + url +";if(getvalue != null){" ;

00064                     foreach ( ReturnElement item in ReturnElements )

00065                     {

00066                         url +=  item . GetScript ( GetParent ());

 

--------------------------------------------------------------------------------


00067                     }

00068                     url +="}" ;

00069                     return url +";" ;

00070                 }

00071                 return url +";" ;

00072             }

00073     

00074             #endregion 

00075             private string mPageContainer ;

00076             /// <summary> 

00077             /// 获取或设置容器页(包含路径) 

00078             /// </summary> 

00079             public string PageContainer

00080             {

00081                 get

00082                 {

00083                     return mPageContainer ;

00084                 }

00085                 set

00086                 {

00087                     mPageContainer = value ;

00088                 }

00089             }

00090             private string mOpenPage ;

00091             /// <summary> 

00092             /// 打开的页(包含路径) 

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             /// 获取或设置打开窗体的高度 

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             /// 获取或设置打开窗体的宽度 

00123             /// </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

00140             {

00141                 get

00142                 {

00143                     return mReturnElements ;

00144                 }

00145             }

00146             private ParameterCollection mParameters = new ParameterCollection ();

00147             /// <summary> 

00148             /// 获取打开页面的参数集 

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+" '" ;

00161                 System . Text . StringBuilder sb = new System . Text . StringBuilder ();

00162                 sb . Append ("' "+OpenPage+" '" );

00163                 string param ="" ;

00164                 string parent = GetParent ();

00165                 for ( int i =0; i < Parameters . Count ; 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 . Append ("+' "+System.Web.HttpUtility.UrlEncode(" ?") +" '+" + param );

00178                     }

00179                     else

00180                     {

00181                         sb . Append ("+' "+System.Web.HttpUtility.UrlEncode(" &") +" '+" + param );

00182                     }

00183                 }

00184                 return sb . ToString ();

00185             }

00186             

00187             

00188             

00189         }

00190         #region subClass

00191         public enum ElementType

00192         {

00193             None ,

00194             Element ,

00195             Select

 

--------------------------------------------------------------------------------


00196         }

00197             /// <summary> 

00198             /// 参数描述类 

00199             /// </summary> 

00200             public class Parameter

00201             {

00202                 /// <summary> 

00203                 /// 构造参数对象 

00204                 /// </summary> 

00205                 public Parameter ()

00206                 {

00207                 }

00208                 /// <summary> 

00209                 /// 构造指定名称和值的参数对象 

00210                 /// </summary> 

00211                 /// <param name="name">参数名称</param> 

00212                 /// <param name="value">参数值</param> 

00213                 public Parameter ( string name , string value )

00214                 {

00215                     Name = name ;

00216                     Value = value ;

00217                 }

00218                 /// <summary> 

00219                 /// 构造指定名称和值的参数对象 

00220                 /// </summary> 

00221                 /// <param name="name">参数名称</param> 

00222                 /// <param name="value">参数值</param> 

00223                 /// <param name="iselement">值是否元素名称</param> 

00224                 public Parameter ( string name , string value , ElementType element )

00225                 {

00226                     Name = name ;

00227                     Value = value ;

00228                     Element = element ;

00229                 }

00230             

00231                 private string mName ;

00232                 /// <summary> 

00233                 /// 获取或设置参数名称 

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                 /// 获取或设置参数值 

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 . None ;

00262                 /// <summary> 

00263                 /// 获取或设置参数值是否参数名称 

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 . CollectionBase 

00278             {

00279                 public Parameter this [ int index ]  

00280                 {

00281                     get  

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 ( Parameter value )  

00297                 {

00298                     return ( List . IndexOf ( value ) );

00299                 }

00300     

00301                 public void Insert ( int index , Parameter value )  

00302                 {

00303                     List . Insert ( index , value );

00304                 }

00305     

00306                 public void Remove ( Parameter value )  

00307                 {

00308                 

00309                     List . Remove ( value );

00310                 }

00311     

00312                 public bool Contains ( Parameter value )  

00313                 {

00314                     // If value is not of type Int16, this will return false. 

00315                     return ( List . Contains ( value ) );

00316                 }

00317     

00318             }

00319             /// <summary>


--------------------------------------------------------------------------------


 

00320             /// 返回值接收元素描述类 

00321             /// </summary> 

00322             public class ReturnElement

00323             {

00324                 /// <summary> 

00325                 /// 构造对象 

00326                 /// </summary> 

00327                 /// <param name="id">接收值的元素ID</param> 

00328                 /// <param name="key">对应值的键值</param> 

00329                 public ReturnElement ( string id , string key )

00330                 {

00331                     ID = id ;

00332                     Key = key ;

00333                 }

00334                 private string mID ;

00335                 /// <summary> 

00336                 /// 获取或设置元素ID 

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                 /// 获取或设置对应值的键值 

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                 /// 获取操作脚本 

00366                 /// </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 : System . Collections . CollectionBase

00374             {

00375                 public ReturnElement this [ int index ]  

00376                 {

00377                     get  

00378                     {

00379                         return ( ( ReturnElement ) List [ index ] );

00380                     }

 

--------------------------------------------------------------------------------


00381                     set  

00382                     {

00383                         List [ index ] = value ;

00384                     }

00385                 }

00386     

00387                 public int Add ( ReturnElement value )  

00388                 {

00389                     return ( List . Add ( value ) );

00390                 }

00391     

00392                 public int IndexOf ( ReturnElement value )  

00393                 {

00394                     return ( List . IndexOf ( value ) );

00395                 }

00396     

00397                 public void Insert ( int index , ReturnElement value )  

00398                 {

00399                     List . Insert ( index , value );

00400                 }

00401     

00402                 public void Remove ( ReturnElement value )  

00403                 {

00404                 

00405                     List . Remove ( value );

00406                 }

00407     

00408                 public bool Contains ( ReturnElement value )  

00409                 {

00410                     // If value is not of type Int16, this will return false. 

00411                     return ( List . Contains ( value ) );

00412                 }

00413             }

00414             #endregion 

00415     }

下载例子和相关源码