1

更新面板内的 Asp 文本框在页面加载中显示来自数据库的值。更新面板内的按钮触发回发。数据库过程更改要显示的值。文本框文本从 Page_Load 中的数据库更新,如果 (!Page.IsPostBack)。确认在 Page_Load 结束时文本框具有更新的值。屏幕上显示的值不会更改为更新值。

根据其他帖子,我尝试将文本框文本的更新移动到 OnPreRender 事件,结果相同。

到目前为止,我唯一的解决方法是在每次回发时使用新 ID 重新创建控件,这样它就不会从发布的数据中重新填充(使用附加到 ID 的时间戳)并使用正则表达式通过基本名称查找控件。这样我可以显示正确的值并在下一次回发时阅读它,但这似乎是一个麻烦的解决方法。

在回发期间更新文本框并具有“stick”值的正确 .NET 方法是什么?

4

1 回答 1

0

如果您仅将 texbox 用于显示目的,则不应使用if (!Page.IsPostBack)

如果您需要使用您的文本框值。然后

protected void Page_Load(object sender, EventArgs e)
{
  if (!IsPostBack)
    TextBox1.Text = %YOUR_INITIAL_DB_VALUE%;
}

protected void Button1_Click(object sender, EventArgs e)
{
  string userInput = TextBox1.Text;
  TextBox1.Text = %YOUR_NEW_DB_VALUE%;
}
于 2012-05-22T15:51:52.827 回答