我有一个画面1.aspx,里面有一个textbox和button
我在button事件中添加下面事件:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = "aaaa"
End Sub
然后把这个画面提交到下一个画面2.aspx
<asp:Button ID="Button1" runat="server" Text="Button"  PostBackUrl ="~/2.aspx" />
为什么我在下一个画面(2.aspx)中用request.form("textbox1")获取不了上一个画面的值呢?
我在1.aspx中的text框输入值,下个画面就能获取值.但是为什么就不能在click事件中给textbox付值后下个画面就不能接收呢?

解决方案 »

  1.   

    因为你定义了PostBackUrl ="~/2.aspx" 后, 页面根本就不会触发你的click事件, 就是说提交到2.aspx前根本就不会给TextBox1.Text赋值, 所以在2.aspx中就不可能取到
      

  2.   

    你怎么获取、怎么赋值?你在两个地方都设置断点调试一下,看看click事件到底执行了没有,以及哪一个中断先执行,哪一个后执行?
      

  3.   

    因为你定义了PostBackUrl ="~/2.aspx" 后, 页面根本就不会触发你的click事件
    ————————————————————————————————————————
    只要访问 PreviousPage 就会触发click事件。
      

  4.   

    那我应该怎么办呢?我画面是一定要跳转到2.aspx的,而且1.aspx中textbox一定要在button click后才会用值.
    我应该用什么办法解决呢?
      

  5.   

    在2.aspx中写:Page1 prev=(Page1)this.PreviousPage;
    if(prev==null)
      throw new Exception("没有执行1.aspx。");TextBox txtboxOnPage1=Page1.TextBox1;并且txtboxOnPage1的Text可以得到click以后的值。
      

  6.   

    Page1 prev=(Page1)this.PreviousPage;
    if(prev==null)
      throw new Exception("没有执行1.aspx。");TextBox txtboxOnPage1=prev.TextBox1;
    其中,Page1是你的1.aspx的code behind代码中定义的类型。
      

  7.   

    default.aspx    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
            TextBox1.Text = "hello wyp"
        End SubResult.aspx
     Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim prvPage As Page = Page.PreviousPage
            Response.Write(CType(prvPage.FindControl("textbox1"), TextBox).Text)
        End Sub