2008-09-17 41 views
2

ASP.NET 1.1 - 我有一個aspx頁面上的數據網格,它是數據綁定並在文本框中顯示一個值。用戶可以更改此值,然後單擊一個按鈕,其中後面的代碼基本上遍歷網格中的每個DataGridItem,爲文本框的ID執行FindControl,然後將.Text值分配給一個變量,然後將該變量用於更新數據庫。數據網格將與新值一起反彈。如何檢索數據網格中的數據綁定文本框的更改值

我遇到的問題是,當將.Text值分配給變量時,正在檢索的值是原始數據綁定值,而不是新輸入的用戶值。任何想法可能會導致這種行爲?

代碼示例:

foreach(DataGridItem dgi in exGrid.Items) 
     { 
      TextBox Text1 = (TextBox)dgi.FindControl("TextID"); 
      string exValue = Text1.Text; //This is retrieving the original bound value not the newly entered value 
      // do stuff with the new value 
     } 

感謝

回答

0

因此,代碼樣本是從您的按鈕單擊事件?

你確定你沒有重新綁定你的數據源在回發?

+0

嗨阿羅斯 是的,它是在button_click事件。 只檢查page_load中的綁定...該死的 - 就是它 - 在button_click之前調用if(!Page.IsPostBack)之外的綁定。 謝謝 – acripps 2008-09-17 02:39:31

0

你什麼時候試圖從TextBox中檢索值?即您提供的代碼示例何時執行?

如果您還沒有,則需要爲DataGrid的ItemCommand事件設置處理程序方法。您應該在該方法中查找新的TextBox值。你還應該確保你的DataGrid在回發時不會被重新綁定。

我也強烈建議通過斯科特·米切爾的優秀文章系列上使用DataGrid控件和它的所有閱讀的功能: http://aspnet.4guysfromrolla.com/articles/040502-1.aspx

+0

感謝您的答案 - 這是由於datagrid在回發時被反彈,但Aros搶先。將檢查鏈接 – acripps 2008-09-17 03:02:16

相關問題