☆用心生活☆-wonder-{改变自己才能让自己过上不一样的日子。为自己加油!}

杂谈Server.Transfer()传值

     公告QQ群:124766907,若你是在.NET领域有独到见解,并有深厚的编程功力,在某一领域具有专长,欢迎本您入群,本群已经有好几位MVP,在SL,.NET,BS方面具有造诣的人欢迎进群。无4年以上经验者勿加,本群追寻高端顶级,多谢。

      话说各位进行页面之间相互传值,基本上都是使用的是session,application,cookie,QueryString,很少有人使用Server.Transfer()进行传值,今天下午特意研究和学习了下页面传值的的几种方法,在coding中学会了很多意识和思想,感觉蛮受用的,特别对server.Transfer()进行的学习和理解,以及体会和感悟,自己随即记录和保存下来,希望以后翻开自己的博客浏览的时候,还记得当初学习的感觉和时光。用于记录自己的学习成长历程吧,权当用于承载自己转行后的记录点滴...  

  首先新建一个项目,用于WEB应用程式,具体页面控件有些什么,请见图1

图1:

文本框,用于输入你自己要传给其他页面的值,不过通常别人在这里是指的是用户名,以及企业应用系统中的参数等。

 

  然后,再添加第2页面,用于第一页面进行传值的目标页面,见下图2

图2:

 

  第三,我们开始进行页面传值,这里主要是讲Server.Transfer()进行传值,因为这个方法是基于面向对象的,大家都觉得OO思想是比较时髦的,至少现在是这样。所以我也modern一回,^_^。使用此方法进行传值,必须要在第一web,进行的值进行保存,其实在这里主要是使用了一个属性进行值保存,如果别的页面要进行访问,那这里就必须把属性进行共享,设置为public,否则无法访问会提示报错,而且设置字段进行访问也可以,但是传值不了,具体原因我也不知道,这希望各位说说,解惑一下,多谢!请看注释部分

 public partial class firstset : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        public string Name
        {
            get { return this.txtvalue.Text.Trim().ToString(); }
        }
       // public  string paravalue;
     
        protected void btnTransfer_Click(object sender, EventArgs e)
        {
            this.Server.Transfer("second.aspx");//注意:使用此方法 ,IE地址栏位地址不会变.
            //paravalue = this.txtvalue.Text;
        }
    }

上面代码用于进行设置值在传递前的工作

第四,因为第三进行了页面传值,那么就在你点击按钮【传值】后进行页面转向,随即第2页面获取并显示值

代码如下:

 

1 public partial class second : System.Web.UI.Page
2 {
3 protected void Page_Load(object sender, EventArgs e)
4 {
5 firstset a;
6 a = (firstset)Context.Handler;
7 string getvalue;
8 getvalue =a.Name;
9 Response.Write(getvalue);
10
11 }
12 }
13  

代码分析:

首先对第一页面的对象进行一个实例化,firstset a; firstset是第一页面的页面后台代码类,如果不是和页面名称相同,那你在HTML视图中的顶端将 Inherits="firstset",引号里面设置你的后台代码的类名就OK了,这里就是一个OO思想的使用,对象实例话,呵呵,自己认为的,不过的确是如此,然后如果要使用server.Transfer()传值就必须使用Context.Handler,此功能是.NET提供的,值得研究和学习,不过这只是一个传递过来的HTTP流对象,你必须强制转化成第一页面的类型,

然后获取第一页面的属性值.

这只是我个人的理解,便于自己记录和学习,希望大家讨论....

posted @ 2009-12-25 17:01  ☆用心生活☆  阅读(8483)  评论(9编辑  收藏  举报
本作者写的任何文章均属原创,若要转载,请注明出处;若
进行与文章有关的商业行为,本作者保留拥有诉诸法律追究
侵权的任何行为。文章只代表本人某一学习时间段内对某一
技术的说明,不代表具有绝对的正确性,若要学习,请与各
位高手编程人员讨论学习。本文章也不代表自己某一时期某
一公司的任何专著和机密文件。仅仅提供自我学习和他人学
习的文章参考,以及自我知识记录。wanzegui325#163.com