All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
优秀的社区软件Discuz!之NT版本教程_.net资料_编程技术
操作数据:中级SQL_mssql学习_编程技术
PHP实例:用PHP如何获取歌曲时间_[PHP教程]
WML Script语法基础_[XML教程]
PHP结合MySQL初级网站编程教程_[PHP教程]
GridView中利用隐藏的TemplateFied来进行数据访问_[Asp.Net教程]
ASP.NET实现匿名访问控制_[Asp.Net教程]
在,ASP.NET,中用匿名委托简单模拟,AOP,做异常和日志处理_.net资料_编程技术
如何用正确的方法写出高质量软件的75条体会_[Asp.Net教程]
简单学习动态网页制作PHP中的Sessions_php资料_编程技术
Reading number is top 10 pictures
湖南中医院的养生八图
BingBingFan apple dew point photo gallery1
刘亦菲写真集2
Sora aoi mirror memorial classics1
毛俊杰-能量永动机
A man's favorite things12
Look for from human art net, is good1
这只猪到底犯了什么错?
Wild animals melee moment of life and death1
The money of more than 100 countries and regions14
Download software ranking
软件工程思想
终极变速大师Speeder3.26
传奇私服架设教程-chm
linux初级教程
jdk1.5
少妇苏霞全本
Kung fu panda - the secret of the teacher
linux安装大全
圣殿祭司的ASP.NET.2.0.开发详解-使用C#
Ashlynn Video4
delv published in(发表于) 2014/1/6 9:15:41 Edit(编辑)
让ASP.NET简便使用SCRIPT_[Asp.Net教程]

让ASP.NET简便使用SCRIPT_[Asp.Net教程]

让ASP.NET简便使用SCRIPT_[Asp.Net教程]

在开发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 // TOD 添加 SetElementsValue.Parent getter 实现
00026 return mParent ;
00027 }
00028 set
00029 {
00030 // TOD 添加 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 // TOD 添加 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 }

作者: 来源:博客园





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.