我正在尝试使用此代码使用跨页回发将变量的值从一页传递到另一页:

在第1页:

<asp:TextBox ID="changepwd" runat="server"></asp:TextBox>

<asp:Button ID="ChangePassword" runat="server" Text="Change Password"
 PostBackUrl="~/Page2.aspx" />


我在运行时从cs文件中的数据库中为其分配了其值,如下所示:
 changepwd.Text = dataSet.Tables[0].Rows[0]["empPassword"].ToString();

在第2页:
 在页面加载事件中:

protected void Page_Load(object sender, EventArgs e)
    {
        if (PreviousPage != null && PreviousPage.IsCrossPagePostBack)
        {
            TextBox txt = (TextBox)PreviousPage.FindControl("changepwd");
            TextBox1.Text = txt.Text;
        }
    }


但我没有从上一页获得价值。我得到的值是null
在第1页上,我从数据库中正确获取了值,但是没有将其传递到第2页上。您能告诉我为什么吗?

最佳答案

希望对您有帮助:

第1页:

<asp:TextBox ID="changepwd" runat="server"></asp:TextBox>

<asp:Button ID="btnChangePassword" runat="server" Text="Change Password"
 PostBackUrl="~/Page2.aspx" />


第1页代码背后:

public TextBox ChangePassword
{
    get
    {
        return changepwd;
    }
}


第2页:
在页面标题处定义:

<%@ PreviousPageType VirtualPath="~/Page1.aspx" %>


第2页代码背后:

protected void Page_Load(object sender, EventArgs e)
{
    if (Page.PreviousPage != null && PreviousPage.IsCrossPagePostBack == true)
    {
        TextBox1.Text = PreviousPage.ChangePassword.Text;
    }
}

关于c# - 跨页发布不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16632312/

10-13 06:54