2012-09-21 38 views
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事件發生之前我在用戶控件中加載用戶數據?

回答

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(); 
} 
相關問題