zoukankan      html  css  js  c++  java
  • ASP.NET学习之页面传值(6)_Server.Transfer传值

    第一种情况:两个页面之间要进行大量数据传递的设置方法:
    【关键点:
    需求:页面A和页面B之间要传递多个值(X1,X2,……)。A传值,B接收
    1、在A中定义所有要传递的值的属性,然后使用Server.Transfer("B.aspx")进行页面跳转
    2、在B中,定义一个A类型的变量C,然后将Context.Handler显示转换成A类型赋值给变量
    3、通过C.X1,C.X2……来取得传递的值
    】
    IndexPage.aspx页面
    <form runat="server">
            <div>
                <input id="Text1" type="text" runat="server"/>
                <input id="Text2" type="text" runat="server"/>
                <input id="Button1" value="传值" type="button" runat="server" onserverclick="ok_ServerClick"/>
            </div>
    </form>
    IndexPage.aspx.cs后台代码:
    public string Name
            {
                get { return Text1.Value; }
            }
    
    public string Pass
            {
                get { return Text2.Value; }
            }
            
    public void ok_ServerClick(object sender, EventArgs e)
            {
             //页面跳转
                Server.Transfer("ResultIndex.aspx");
            }
    ResultPage.aspx.cs后台代码:    
    接收数据        
    protected void Page_Load(object sender, EventArgs e)
            {
                indexPage ind = (indexPage)Context.Handler;  //Context.Handler显示转换成IndexPage类型的//获得实例化的句柄
                string name = ind.Name;
                string pass = ind.Pass;
                txt.Value = "用户名:" + name + "-----密码:" + pass;
            }    
    第二种情况:多个查询页面共用一个结果页面的设置方法:
    【注意点:
    1、将要查询参数都定义在一个类P里面
    2、定义一个接口,该接口中只有一个方法。P返回类型的方法
    3、让要查询页面实现这个接口IXXX,在里面创建一个P类对象,给里面的需要的属性赋值
    4、在接收页面,实例化一个P对象,申明一个接口变量
        判断实例化句柄是不是接口类型(Context.Handler is IXXX)
        如果是,就将实例化句柄赋给接口变量,在调用接口里面的方法赋给P的实例化对象。
        最后,用实例化对象就可以取值了
    】
    第一步:先定义一个类:LoginParams【里面定义的是要传递的参数的属性】
     public class LoginParams
        {
            public string Name { set; get; }
            public string Pass { set; get; }
        }
    第二步:定义一个接口:ILogin。里面写一个获得LoginParams类实例的方法
    interface ILogin
        {
            LoginParams loginp { get; }  //定义一个返回类型是LoginParams类的方法
        }
    第三步:在发送数据的页面实现ILogin接口:
    public partial class indexPage : System.Web.UI.Page,ILogin
        {
           //定义一个参数类的变量
            private LoginParams lp;
            protected void Page_Load(object sender, EventArgs e)
            {
            }
               //实例化类对象
                lp = new LoginParams();
                //给参数赋值
                lp.Name = Text1.Value;
                lp.Pass = Text2.Value;
                //页面跳转
                Server.Transfer("ResultIndex.aspx"); 
            }
            //实现接口中的方法
            public LoginParams loginp
            {
                get
                {
                    return lp;
                }
            }
        }
    第四步:在接收数据的页面做判断在进行数据接收:
     public partial class ResultIndex : System.Web.UI.Page
        {
            LoginParams lp = new LoginParams();
            ILogin ilogin = null;
            protected void Page_Load(object sender, EventArgs e)
            {
             if(Context.Handler is ILogin){
                    ilogin =(ILogin)Context.Handler;
                    lp = ilogin.loginp;
                }
                txt.Value = lp.Name + "___" + lp.Pass;
            }
        }
    【前端页面设置:】    
    IndexPage.aspx页面
    <form runat="server">
            <div>
                <input id="Text1" type="text" runat="server"/>
                <input id="Text2" type="text" runat="server"/>
                <input id="Button1" value="传值" type="button" runat="server" onserverclick="ok_ServerClick"/>
            </div>
    </form>
  • 相关阅读:
    C# 中的委托和事件
    POJ题目分类
    A*算法
    Poj 1077 eight(BFS+全序列Hash解八数码问题)
    Poj 2304 Combination Lock(模拟顺、逆时钟开组合锁)
    Poj 2247 Humble Numbers(求只能被2,3,5, 7 整除的数)
    Poj 2328 Guessing Game(猜数字游戏)
    Poj 2403 Hay Points(Map)
    Poj 1338 Ugly Numbers(数学推导)
    Poj 1504 Adding Reversed Numbers(用字符串反转数字)
  • 原文地址:https://www.cnblogs.com/Yisijun/p/4588137.html
Copyright © 2011-2022 走看看