欢迎光临
我们一直在努力

让asp.net简便使用script_asp.net技巧

建站超值云服务器,限时71元/月

在开发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     }


下载例子和相关源码

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 让asp.net简便使用script_asp.net技巧
分享到: 更多 (0)