我在WebForm2.aspx.cs类文件中增加了5个可读写的属性, 怎样在WebForm1.aspx.cs文件中把值传递到webForm2中? 能不能象WinForm窗口一样用new WebForm2()的方式建立webForm2类,然后实现值的传递?

解决方案 »

  1.   

    http://blog.csdn.net/jabby12/archive/2004/08/05/65515.aspx
      

  2.   

    不行,可以用Server.transful("WebForm2.aspx");
      

  3.   

    sorry字打错了,是Server.Transfer
      

  4.   

    http://dev.csdn.net/develop/article/30/30927.shtm
    http://dev.csdn.net/develop/article/18/18587.shtm
      

  5.   

    在WebForm1 中
     添加textbox1,以记录其内容
     然后在某个事件中:
     server.transfer("webform2.aspx",true)在webform2中的pageload事件: 
     Dim a As WebForm1 = Me.Context.Handler
     Response.Write(Request.Form("textbox1")) // 读取textbox1的内容
      

  6.   

    、使用Server.Transfer
    虽然这种方法有点复杂,但也不失为一种在页面传值的方式。
    举个例子看看:
    1、创建一个web form
    2、在新建的web form中放置一个button1,在放置两个TextBox1,TextBox2 
    3、为button按钮创建click事件
    代码如下:
    private void Button1_Click
    (object sender, System.EventArgs e)
    {
     Server.Transfer("webform2.aspx");
    }
    4、创建过程来返回TextBox1,TextBox2控件的值代码如下:
    public string Name
    {
     get
     {
      return TextBox1.Text;
     }
    }public string EMail
    {
     get
     {
      return TextBox2.Text;
     }
    }
    5、新建一个目标页面命名为webform2
    6、在webform2中放置两个Label1,Label2
    在webform2的Page_Load中添加如下代码:
    private void Page_Load
    (object sender, System.EventArgs e)
    {
     //创建原始窗体的实例
     WebForm1 wf1;
     //获得实例化的句柄
     wf1=(WebForm1)Context.Handler;
     Label1.Text=wf1.Name;
     Label2.Text=wf1.EMail;}
    运行,即可看到传递后的结果了。
      

  7.   

    各位大虾还要多帮忙, 我的目的不但要实现数值传递,而且还要实现代码共用. webForm2窗口可以实现数据浏览, 更新,添加和删除的功能, 是一个通用的窗口. 我想在父窗口(webForm1, webForm3,webForm4,...., 可能有很多个)中点击一个按钮然后打开WebForm2窗口, 还要把父窗口的值传入到webForm2.这些值包括表名, 记录ID, 还有一些设置选项, 列如有的数据可能有图片,有的可能没有, 还有图片的尺寸等. 最重要的是要把值传递到webForm2, 但是webForm2不能跟父窗口有任何的关联, 因为这样才能实现webForm2的通用性. 如果使用QuryString传值, 参数太多. 而且最好不要从父窗口中把数据提交到webForm2, 因为父窗口中还有很多数据, 更webForm2相关的只是很少的一部分. 
    我对asp很熟, 但是asp.net是个新手,请多多关照!
      

  8.   

    我认为asp.net比最大的好处就是能实现代码的通用, 要不然还不如直接用asp来的方便
      

  9.   

    可以通过传一个拼接的字符串来传多个值
    ParentPage.aspx:
    window.showModalDialog("DialogPage.aspx?para1=aaa&para2=bbb");
    or window.open('')DialogPage.aspx:
    string str1=Request.QueryString["para1"].toString();
    string str2=Request.QueryString["para2"].toString();
      

  10.   

    同意gshope(北京.net)
    不如自己写控件了
      

  11.   

    一、使用Querystring 
    Querystring是一种非常简单的传值方式,其缺点就是会把要传送的值显示在浏览器的地址栏中,并且在此方法中不能够传递对象。如果你想传递一个安全性不是那么太重要或者是一个简单的数值时,用此方法最好不过了。下面通过一个小例子来完成传值工作,步骤如下: 
    1、创建一个web form 
    2、在新建的web form中放置一个button1,在放置两个TextBox1,TextBox2 
    3、为button按钮创建click事件 
    代码如下: 
    private void Button1_Click 
    (object sender, System.EventArgs e) 

    string url; 
    url="webform2.aspx?name=" + 
    TextBox1.Text + "&email=" + 
    TextBox2.Text; 
    Response.Redirect(url); 

    4、新建一个目标页面命名为webform2 
    5、在webform2中放置两个Label1,Label2 
    在webform2的Page_Load中添加如下代码: 
    private void Page_Load 
    (object sender, System.EventArgs e) 

    Label1.Text=Request.QueryString["name"]; 
    Label2.Text=Request.QueryString["email"]; 

    运行,即可看到传递后的结果了。 二、使用Session变量 使用Session变量传值是一种最常见的方式了,此中方式不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值removed后,变量才会消失。举个例子看看: 
    1、创建一个web form 
    2、在新建的web form中放置一个button1,在放置两个TextBox1,TextBox2 
    3、为button按钮创建click事件 
    代码如下: 
    private void Button1_Click 
    (object sender, System.EventArgs e) 

    Session["name"]=TextBox1.Text; 
    Session["email"]=TextBox2.Text; 
    Response.Redirect("webform2.aspx"); 

    4、新建一个目标页面命名为webform2 
    5、在webform2中放置两个Label1,Label2 
    在webform2的Page_Load中添加如下代码: 
    private void Page_Load 
    (object sender, System.EventArgs e) 

    Label1.Text=Session["name"].ToString(); 
    Label2.Text=Session["email"].ToString(); 
    Session.Remove("name"); 
    Session.Remove("email"); 

    运行,即可看到传递后的结果了。 三、使用Server.Transfer 
    虽然这种方法有点复杂,但也不失为一种在页面传值的方式。 
    举个例子看看: 
    1、创建一个web form 
    2、在新建的web form中放置一个button1,在放置两个TextBox1,TextBox2 
    3、为button按钮创建click事件 
    代码如下: 
    private void Button1_Click 
    (object sender, System.EventArgs e) 

    Server.Transfer("webform2.aspx"); 

    4、创建过程来返回TextBox1,TextBox2控件的值代码如下: 
    public string Name 

    get 

    return TextBox1.Text; 

    } public string EMail 

    get 

    return TextBox2.Text; 


    5、新建一个目标页面命名为webform2 
    6、在webform2中放置两个Label1,Label2 
    在webform2的Page_Load中添加如下代码: 
    private void Page_Load 
    (object sender, System.EventArgs e) 

    //创建原始窗体的实例 
    WebForm1 wf1; 
    //获得实例化的句柄 
    wf1=(WebForm1)Context.Handler; 
    Label1.Text=wf1.Name; 
    Label2.Text=wf1.EMail; } 
    运行,即可看到传递后的结果了。 
      

  12.   

    用SESSION可以试试,你要实现通用检索吧,你就传一个DATATABLE到SESSION里,在导航时,就往DATATABLE里写数据就可以啦,我以前都试过,不过没有你说的那么复杂,我是传到IFRAME里的
      

  13.   

    主要是我的webForm2要实现对很多不同的表的操作
      

  14.   

    http://blog.csdn.net/jabby12/archive/2004/08/05/65515.aspx
    http://dev.csdn.net/develop/article/30/30927.shtm
    http://dev.csdn.net/develop/article/18/18587.shtm