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 に答える