0

我有一个表示表格的 asp.net 控件和一个表示表格中一行的控件。每行包含一个日期文本字段和一个提交输入日期的按钮。

<asp:TextBox ID="TextBox" runat="server"/>
<asp:ImageButton ID="SubmitButton" onclick="SubmitButton_Click" runat="server" />

该按钮触发一个触发数据库更新的事件。

protected void SubmitButton_Click(object sender, EventArgs e)
{
    //Validate information in TextBox
    //Submit to database
}

这应该会导致根据在文本框中输入的信息显示一组新的行。但是,除非我强制刷新页面,否则不会显示更新的信息。我怀疑这是因为事件处理属于 asp.net 页面/控件生命周期中的位置。据我所知,这些值在实际触发事件之前已加载到行中,这导致它们获取旧值而不是它们应该具有的新值。

我的问题是解决这个问题的最佳方法是什么?我假设这将类似于检查它是否是页面加载事件中的回发,而不是加载用户控件行,而是以某种方式导致它们加载或从事件刷新,但我不确定应该怎么做看起来像。

编辑:我想我需要调用在 Page_Load 中调用的相同函数,但我不确定如何从我猜的自定义控件中获取它。

4

2 回答 2

3

我认为您需要在事件触发后重新绑定网格。

于 2009-09-17T16:23:56.800 回答
1

正如 Locksfree 所说,您可能正在寻找重新绑定。

回发不会自动显示新数据,除非您通过调用 asp.net 对象的 DataBind() 专门请求新数据。

如果您正在动态创建表,那么您将不得不重新运行代码以再次重建表以获取新数据。根据它的构建方式,您可能能够只重新加载新数据的部分重新加载。

于 2009-09-17T19:05:44.487 回答