asp页面传值集中方式.doc_第1页
asp页面传值集中方式.doc_第2页
asp页面传值集中方式.doc_第3页
asp页面传值集中方式.doc_第4页
asp页面传值集中方式.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/share/detail/21414454一. 使用QueryString变量QueryString是一种非常简单也是使用比较多的一种传值方式,但是它将传递的值显示在浏览器的地址栏中,如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。 Response.Redirect( target.aspx?param1=hello¶m2=hi ) 接收页面: string str = Request.QueryStringparam1; string str1 = Request.QueryStringparam2;二.使用Cookie对象变量(Cookie是存放在客户端的)设置Cookie: HttpCookie cookie_name = new HttpCookie(name);cookie_name.Value = Label1.Text;Reponse.AppendCookie(cookie_name);获取Cookie:string name= Request.Cookiename.Value.ToString();三. 使用Session变量(session是存放在服务器端的)设置Session: Sessionname =hello;获取Session: string name = Sessionname.ToString();四.使用Application 对象变量Application对象的作用范围是整个全局,也就是说对所有用户都有效。此种方法不常使用,因为Application在一个应用程序域范围共享,所有用户可以改变及设置其值,故只应用计数器等需要全局变量的地方。 设置Application : Applicationname = =hello;获取Application : string name = Applicationname.ToString();五. PostBackUrl()方法default.aspx页面:Code1 2default2.aspx页面:Code1 if (PreviousPage != null)2 3 TextBox textBox1 = (TextBox)PreviousPage.FindControl(TextBox1);4 Response.write(textBox1.Text );5 六.使用Server.Transfer方法这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。下面这个代码是展示在需要很多个参数的时候,使用的方法,如果参数比较少就没必要使用这个方法了.如果让所有的查询页面都继承一个接口,在该接口中定义一个方法,该方法的唯一作用就是让结果页面获得构建结果时所需的参数,就可实现多页面共享一个结果页面操作!1、先定义一个类,用该类放置所有查询参数:Code/*/ / QueryParams 的摘要说明/ public class QueryParams private string firstName; private string lastname;private int age; public string Firstname get return this.firstname; set this.firstname = value; public string LastName get return this.lastname; set this.lastname = value; public string Ageget return this.age; set this.age = value; 2、接口定义:Code/*/ / 定义查询接口。 / public interface IQueryParams/*/ / 参数 / QueryParams Parameters get;3、查询页面继承IQueryParams接口(QueryPage.aspx):QueryPage.aspxCodeQueryPage.aspx.csCodepublic partial class QueryPage : System.Web.UI.Page, IQueryParams private QueryParams queryParams;public QueryParams Parameters get return queryParams; public void btnEnter_Click(object sender, System.EventArgs e) /赋值 queryParams = new QueryParams();queryParams.FirstnName = this.txtFirstName.Text;queryParams.Lastname = this.txtLastName.Text;queryParams.Age = this.txtAge.Text;Server.Transfer( ResultPage.aspx ); protected void Page_Load(object sender, EventArgs e) 4、接收页面(ResultPage.aspx):ResultPage.aspx.cspublic partial class ResultPage : System.Web.UI.Pageprotected void Page_Load(object sender, EventArgs e)QueryParams queryParams = new QueryParams();IQueryParams queryInterface;/实现该接口的页面 if (Context.Handler is IQueryParams)queryInterface = (IQueryParams)Context.Handler;queryParams = queryInterface.Parameters; Response.Write(FirstName: );Response.Write(queryParams.FirstName);Response.Write( Lastname: );Response.Write(queryParams.LastName); Response.Write( Age: );Response.Write(queryParams.Age); 1、在CallBack之后保持滚动条的位置在Asp.Net1.1中,CallBack之后保持滚动条的位置是一件非常痛苦的事情,特别是页中有一个Grid并且想要编辑特定的行。为了不停留在想要得行,页面会重新加载并且必须在顶部向下滚动。在Asp2.0中,只需要简单的在页面的属性中加入MaintainScrollPostionOnPostBack属性即可:2、页面加载后设置默认焦点到控件上这也是一个非常简单的例子,不需要javascript的辅助即可完成。如果在页面中有一两个textbox,为什么要让用户去点击textbox来开始输入数据呢?是不是可以能够让光标已经停留在textbox进而可以输入数据呢?使用HtmlForm控件的DefaultFocus属性就可以轻易的做到:3、用户点击“Enter”键时触发默认按钮的click实践。在Asp1.1中,想要使用户点击“Enter”键就能关联到一个button的服务器段的click事件需要借助于javascript,这是很痛苦的。幸好,现在可你使用HtmlForm控件的DefaultButton属性来设置。这个属性也可以设置到Panel控件上,当用户移动到页面中不同的Panel上,点击enter键来触发不同的button控件的click事件。 4、简单的寻找固定的控件。在页面的控件中按层次寻找控件很痛苦,但是如果你知道控件怎样固定在页面中,就可以用简写”$”来查找控件而不用写递归的代码。请看下面代码,注意”$”的使用:Name: asp:TextBox ID=txtName runat=server Text= /这个小技巧也可以用在服务器端的 使用FindControl()函数时:TextBox tb = this.FindControl(form1$formVw$txtName) as TextBox;if (tb != null)/Access TextBox control5、强类型访问跨页提交的控件这个比其他的要内容多一点,但是很有用。ASP.NET 2.0引入了交叉回发的概念使得一个页面可以将信息回发到另一个不同的页面,可以将button控件的PostBackUrl属性设置为接受回发数据的页面来完成。一般的,回发的数据可以象前一页那样做一些事情。但是,如果你要获得前一页制定控件的属性就需要一个cast(),如果你给引起回发的code-behide页面添加了一个公共属性,你就可以直接以强类型的方式添加PreviousPageType来指向引起回发的页面从而能够访问那个属性。如果有一个页面Default.aspx,他有一个公共属性来返回此页面上一个TextBox,数据回发目的页(SearchResults.aspx)可以以强类型的方式(不需要FindControl() 方法),在页面的顶部添加:这样,SearchResults.aspx中代码就可以以强类型的方式访问Default.aspx的TextBox。下面的例子假定Default.aspx定义的属性名为SearchTextBox:TextBox tb = PreviousPage.SearchTextBox; PreviousPageType还有一个TypeName属性,你可以定义一个基本类型,一个或多个页面从此类型继承下来,使得这种技术可以在多页面上使用。PreviousPage.IsCrossPagePostBack可以判断是否为垮页提交。对于跨页提交的补充:在ASP.NET 1.X 版本中,页面都是提交到自己本身,并不能方便的指定需要提交的目的页面。例如FirstPage.aspx中的button只能提交到 FirstPage.aspx,而不能提交到SecondPage.aspx。很多时候,ASP.NET 1.X这样工作方式使我们的开发方式受到不少限制。熟悉ASP/JSP/PHP的朋友大概很不习惯,因为以前经常使用的提交方式突然无法使用,虽然也有解决这个问题的方法(欲详细了解的读者可去微软网站收看webcast),可是过程太烦琐,不甚方便。令我们高兴的是,ASP.NET 2.0中有了跨页面提交的简单方法。可在第一个页面中的button添加PostBackUrl属性设置为接受提交的页面,并且这个页面增加PreviousPageType 指令,若要是目标页面在新窗口中打开则可以在源页面form标记增加target=_blank属性。6、强类型访问母版页的控件PreviousPageType指令并不是唯一的可以强类型访问控件的方法。如果在母版页中定义了一个公共属性,并且想要以强类型的方式访问它,那么就可以在页面顶部添加MasterType指令(注意:MasterType指令同PreviousPageType一样允许定义一个TypeName)你可以在内容页书写如下的代码来访问目标母版页的属性:this.Master.HeaderText = Label updated using MasterType directive with VirtualPath attribute.;7、Validation groups验证组一个页中可能有多个控件和多个按钮。当其中的一个按钮被点击后想要特定的validator被激发而不是页面中的所有validator。在ASP.NET 1.1中除了hack code没有更好的办法。ASP.NET 2.0中给所有的validator控件和按钮(button、linkbutton等等)增加了ValidatorGroup属性,就可以轻松地解决这个问题。如果在页面中有一个TextBox并且紧挨着他有一个RequiredFieldValidator 和Button控件,可以将RequiredFieldValidator和Button的ValidationGroup属性设置成一样的值从而使得点击button时只触发这个RequiredFieldValidator的validor,任何没有定义在ValidationGroup内的其他的validator都会被忽略。看下例:Search Text: .Other controls with validators and buttons defined here本人心得/ / 转到设置权限页面 / / / protected void setPower_Click1(object sender, EventArgs e) StringBuilder builder = new

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论