页面回发后加载用户控制数据?

时间:2012-09-21 18:30:39

标签: c# asp.net

我有一个页面,用户可以在其中更新用户信息(例如他们的名字)。我在这个页面上也有一个用户控件,它显示了很多信息,包括用户的名字。

我遇到的问题是,当我更改此页面上的第一个名称时,保存数据后用户控件不会更新。

这是我的前端:

<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事件发生我在用户控件中加载用户数据?

1 个答案:

答案 0 :(得分: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();
}