我有一个页面,用户可以在其中更新他们的用户信息(例如他们的名字)。我在此页面上还有一个用户控件,它显示大量信息,包括用户的名字。
我遇到的问题是,当我更改此页面上的名字时,保存数据后用户控件不会更新。
这是我的前端:
<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
事件?
最佳答案
不,事件引发时无法更改。但是您可以将用户加载代码放入 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();
}
关于c# - 页面回发后加载用户控制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12536193/