3

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

在第 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 页。你能告诉我为什么吗?

4

1 回答 1

0

希望它帮助你:

第 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;
    }
}
于 2013-05-20T02:40:39.833 回答