2

ユーザーがユーザー情報 (名前など) を更新できるページがあります。このページには、ユーザーの名を含む多くの情報を表示するユーザー コントロールもあります。

私が抱えている問題は、このページの名前を変更すると、データを保存した後にユーザー コントロールが更新されないことです。

これが私のフロントエンドです:

<UC:LeftNav ID="leftNav" runat="server" />

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

<asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" />

ユーザー情報を保存するための私のボタンクリックイベント:

protected void btnSave_Click(object sender, EventArgs e)
{
    ...
    user.FirstName = txtFirstName.Text();
    user.Save();
    ...
}

ユーザー情報を表示するユーザー コントロール:

protected void Page_Load(object sender, EventArgs e)
{
    ...
    lblFirstName.Text = user.Firstname;
    ...
}

デバッガーを調べたところbtnSave_Click、ページのイベントがユーザー コントロールのイベントの後に発生することがわかりました。Page_Load

ユーザー コントロールにユーザー データをロードするbtnSave_Clickにイベントを発生させる方法はありますか?

4

1 に答える 1

2

いいえ、イベントが発生したときに変更する方法はありません。ただし、ユーザー読み込みコードをメソッドに入れ、Bindメソッドから呼び出すことができますbtnSave_Click

ユーザーleftNav制御:

public void Page_Load(object sender, EventArgs e)
{
    if(!IsPostback)
    {
        BindUserInfo();
    }
}

public void BindUserInfo()
{
    //Binding code here
}

ページ上:

public void btnSave_Click(object sender, EventArgs e)
{
    //Do save work
    leftNav.BindUserInfo();
}
于 2012-09-21T18:32:10.027 に答える