文件a.aspx
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <asp:Label ID="Label2" runat="server"></asp:Label>
        <asp:Button ID="Button2" runat="server" Text="显示" /></div>
文件b.aspx.vb
   Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
        If Not Page.PreviousPage Is Nothing Then
            Dim SourceTextBox As TextBox
            SourceTextBox = CType(PreviousPage.FindControl("TextBox2"), TextBox)
            If Not SourceTextBox Is Nothing Then
                Label2.Text = SourceTextBox.Text
            End If
        End If    End Sub为什么什么都显示不出来?

解决方案 »

  1.   

    Dotnet的调用机制是:
    第一次 
    Page_Load()
    点击Button_Click之后是
    Page_load()//注意,在这个时候,你的TextBox的Text已经清空了
    Button_Click()//所以这里获取不到值
      

  2.   

    是不是因为a.aspx它的后台代码是b.aspx.vb吗
     Codebehind="b.aspx.vb"
      

  3.   

    不是,我是在vs.2005中测试的时候运行的
    这个主要是学习PreviousPage.FindControl的用法
    我是。NET初学,很高兴认识大家!
      

  4.   

    楼主的page_load里有些什么代码?
      

  5.   

    你要自己设置调试中断点,看看(Page.PreviousPage Is Nothing)是个什么结果。
      

  6.   

    很高兴认识楼主。^-^
    我没这么用过,PreviousPage似乎用于crosspage postback. 为什么不直接写
    Label2.Text = SourceTextBox.Text呢。
      

  7.   

    SourceTextBox 是个临时变量,其值是从服务端重定向功能的“前一页面”里找出来的控件,SourceTextBox不是当前页面设计器上声明的控件。
      

  8.   

    呵呵,是的。我的意思是TextBox2.Text,根据楼主的代码来看。是这个意思吧。