更新面板中的Asp文本框在页面加载中显示数据库中的值。更新面板内的按钮会触发回发。数据库过程更改要显示的值。如果(!Page.IsPostBack),则从Page_Load中的数据库更新文本框文本。确认在Page_Load结尾处文本框具有更新的值。屏幕上显示的值不会更改为更新值。
根据其他帖子,我尝试将文本框文本的更新移动到具有相同结果的OnPreRender事件。
到目前为止我唯一的解决方法是在每个回发上使用新ID重新创建控件,这样就不会从发布的数据中重新填充(使用附加到ID的时间戳)并使用Regex通过基本名称查找控件。这样我可以显示正确的值并在下一次回发时读取它,但这似乎是一个麻烦的解决方法。
在回发期间更新文本框的正确.NET方法是什么,并且值为“stick”?
答案 0 :(得分: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%;
}