| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 编程开发 > .NET教程 > ASP.NET教程 > 文章正文 用户登录
如何加入透明Flas
为新浪博客添加fl
后sp时代 搜索联盟
flashget下载联盟
265联盟:“Flash
新易网络提供100M
龙太极/100m/asp/
无限网络提供50M 
霞光科技50M/Htm/
苏能科技100M/FTP

让ASP.NET简便使用SCRIPT           

让ASP.NET简便使用SCRIPT

作者:佚名 来源:天极网 更新:2006-8-25 21:05:35 错误报告 我要投稿

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

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

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

00011 /// key=value|key1=value1|.....

00012 ///


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

00019 /// 是否需要加载父指向

00020 ///


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

00041 /// 构造对象

00042 ///


00043 /// 容器页

00044 /// 具本打开的页面

00045 public ShowModalDialog ( string pageContainer , string openPage )

00046 {

00047 PageContainer = pageContainer ;

00048 OpenPage = openPage ;

00049 }

00050 public const string PageUrlTag ="pageurl" ;

00051 ///

00052 /// 生成脚本

00053 ///


00054 /// string

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

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

00078 ///


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

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

00093 ///


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

00107 /// 获取或设置打开窗体的高度

00108 ///


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

00122 /// 获取或设置打开窗体的宽度

00123 ///


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



00137 /// 获取返回值元素集

00138 ///


00139 public ReturnElementCollections ReturnElements

00140 {

00141 get

00142 {

00143 return mReturnElements ;

00144 }

00145 }

00146 private ParameterCollection mParameters = new ParameterCollection ();

00147 ///

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

00149 ///


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

00198 /// 参数描述类

00199 ///


00200 public class Parameter

00201 {

00202 ///

00203 /// 构造参数对象

00204 ///


00205 public Parameter ()

00206 {

00207 }

00208 ///

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

00210 ///


00211 /// 参数名称

00212 /// 参数值

00213 public Parameter ( string name , string value )

00214 {

00215 Name = name ;

00216 Value = value ;

00217 }

00218 ///

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

00220 ///


00221 /// 参数名称

00222 /// 参数值

00223 /// 值是否元素名称

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

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

00234 ///


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

00248 /// 获取或设置参数值

00249 ///


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



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

00264 ///


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


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




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

00321 ///


00322 public class ReturnElement

00323 {

00324 ///

00325 /// 构造对象

00326 ///


00327 /// 接收值的元素ID

00328 /// 对应值的键值

00329 public ReturnElement ( string id , string key )

00330 {

00331 ID = id ;

00332 Key = key ;

00333 }

00334 private string mID ;

00335 ///

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

00337 ///


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

00351 /// 获取或设置对应值的键值

00352 ///


00353 public string Key

00354 {

00355 get

00356 {

00357 return mKey ;

00358 }

00359 set

00360 {

00361 mKey = value ;

00362 }

00363 }

00364 ///

00365 /// 获取操作脚本

00366 ///


00367 /// string

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 }

文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。