2012-05-22 81 views
1

更新面板內的Asp Textbox在頁面加載時顯示數據庫中的值。更新面板內的按鈕觸發回發。數據庫過程更改要顯示的值。 (!Page.IsPostBack),文本框文本將從Page_Load中的數據庫更新。經過確認,在Page_Load的最後,文本框具有更新的值。在屏幕上顯示的值不會更改爲更新的值。從數據庫回發更新asp.net文本框顯示舊值

基於其他職位,我已經嘗試將文本框文本的更新移動到OnPreRender事件,結果相同。

我到目前爲止唯一的解決方法是在每個回發中重新創建帶有新ID的控件,以便它不會從發佈的數據(使用附加到ID的時間戳)重新填充,並使用基本名稱查找控件正則表達式。這樣我可以顯示正確的值並在下一次回發中讀取它,但它似乎是一個麻煩的解決方法。

什麼是在回發期間更新文本框的正確的.NET方式,並具有值「棒」?

+0

查詢 - 您觸發回調,我假設調用一個按鈕事件處理程序,它更新數據庫。頁面加載事件將在這個點擊事件之前運行,所以它不會有更新的值 - 這是發生了什麼? – Paddy

回答

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%; 
} 
相關問題