2010-11-10 62 views
0

我有一個GridView,我想刷新一行(不是整個網格),當它被選中。當Grid選定索引更改時,我試圖更改GridView.SelectedRow.CellsText屬性。它似乎適用於DataField,但不適用於TemplateField。對於TemplateField,我得到了奇怪的結果 - 所選行的值正確更改,但是當我選擇另一行時,之前所選行的值爲TemplateField變爲空白。簡要說明:如何動態更改TemplateField的值?

1. Nothing selected 
-------------------------- 
id   template_field 
-------------------------- 
1   value_1 
2   value_2 

2. First record selected 
-------------------------- 
id   template_field 
-------------------------- 
1   updated_value_1 
2   value_2 

3. Second record selected 
-------------------------- 
id   template_field 
-------------------------- 
1   [blank!] 
2   updated_value_2 

最後,我結束了空白template_field每個記錄除了選擇。什麼是改變TemplateField文本的正確方法?

回答

1

嘗試添加一個TextBox控件到您的模板,並更改而不是單元格內容。你應該可以通過這樣的事情得到它:

TextBox tb = GridView.SelectedRow.Cells[0].Controls[0] as TextBox; 
if(tb != null) 
    tb.Text = newValue; 
+0

我會試試看。我已經嘗試更改'Controls [0]'的'Text',但是這個屬性是隻讀的,所以它不起作用。 – a1ex07 2010-11-10 21:39:20

+0

但您是否將TextBox控件添加到模板字段?所以你試圖改變TextBox的內容(它有自己的viewstate,所以應該記住更改)。 – CodingGorilla 2010-11-10 21:41:23

+0

我正在嘗試它...感謝您的想法。 – a1ex07 2010-11-10 21:47:57