使用ASP.Net PostBackUrl将值传递给Label

时间:2015-12-08 10:55:39

标签: asp.net postbackurl

我想使用PostBackUrl将TextBox1的值从一个页面传递到另一个页面。所以这是第一页的代码。

<form id="form1" runat="server">
    <div>
        <h2>Working With the Previous Page Object</h2>

        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <br />
        <asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="~/Default7.aspx"/>

    </div>
    </form>

现在,这是从First Page:

中检索值的页面的代码
protected void Page_Load(object sender, EventArgs e)
    {
        Page previousPage = Page.PreviousPage;
        if(previousPage != null)
        {
            Label1.Text = ((TextBox)previousPage.FindControl("TextBox1")).Text;
        }
    }

当然我已插入名为&#34; Label1&#34;在从第一页检索TextBox1的值的页面上。

我看过很多教程都做同样的事情,但它对我不起作用,我不知道为什么。欢迎任何帮助。

3 个答案:

答案 0 :(得分:0)

可能在这里,FindControl()无法识别任何名为TextBox1的控件,它是您在设计代码中提供的ID。

您可以尝试在FindControl()中使用该控件的完整唯一ID,如下所示:

Label1.Text = ((TextBox)previousPage.FindControl("ctl00$ContentPlaceHolder1$TextBox1")).Text;

此唯一ID将是在将控件呈现为HTML时在运行时生成的ID。您可以使用浏览器中的inspect元素从HTML源代码中读取它。

作为另一种选择,您还可以先尝试查找ContentPlaceHolder,然后找到其中包含给定ID的TextBox

希望这有帮助。

答案 1 :(得分:0)

样品

WebForm1.aspx的

<form id="form1" runat="server" action="WebForm2.aspx" method="post"> 
<div>
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><asp:Button ID="Button1" runat="server" Text="Button" UseSubmitBehavior="true" />
</div>
</form>

WebForm2.aspx.cs

protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write(Request.Form.GetValues("TextBox1")[0]);
    }

答案 2 :(得分:0)

<强> WebForm1.aspx的

<form id="form1" runat="server"> 
    <div>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
    </div>
    </form>

<强> WebForm1.aspx.cs中

protected void Button1_Click(object sender, EventArgs e)
        {
            Session["TextBox1Value"] = TextBox1.Text;
            Response.Redirect("WebForm2.aspx");
        }

<强> WebForm2.aspx.cs

protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write(Session["TextBox1Value"]);
        }