Asp.net 如何动态更改TemplateField的值?

Asp.net 如何动态更改TemplateField的值?,asp.net,gridview,templatefield,Asp.net,Gridview,Templatefield,我有一个GridView,当它被选中时,我想刷新一行(而不是整个网格)。当网格选定索引更改时,我尝试更改每个GridView.SelectedRow.Cells的Text属性。它似乎适用于数据字段,但不适用于模板字段。对于TemplateField我得到了奇怪的结果-选定行的值正确更改,但当我选择另一行时,以前选定行的TemplateField值变为空。简要说明: 1. Nothing selected -------------------------- id templat

我有一个GridView,当它被选中时,我想刷新一行(而不是整个网格)。当网格选定索引更改时,我尝试更改每个
GridView.SelectedRow.Cells的
Text
属性。它似乎适用于
数据字段
,但不适用于
模板字段
。对于
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\u字段都是空白的。更改TemplateField文本的正确方法是什么?

尝试向模板中添加TextBox控件,并更改它而不是单元格内容。您应该能够通过以下方式获得:

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

我试试看。我已尝试更改
控件[0]
文本,但此属性是只读的,因此无效。但是您是否向模板字段添加了TextBox控件?因此,您正在尝试更改文本框的内容(它有自己的viewstate,所以应该记住这些更改)。。。谢谢你的主意,非常感谢。它确实有效。顺便说一句,它不必是一个文本框,它也可以与标签一起工作(我不需要它是可编辑的)。