Как динамически изменить значение TemplateField? - PullRequest
0 голосов
/ 11 ноября 2010

У меня есть GridView, и я хочу обновить строку (не всю сетку), когда она будет выделена. Я пытался изменить свойство Text для каждого из GridView.SelectedRow.Cells при изменении индекса, выбранного в Grid. Кажется, это работает для DataField, но не для 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 Ответ

1 голос
/ 11 ноября 2010

Попробуйте добавить элемент управления TextBox в шаблон и измените it вместо содержимого ячейки. Вы должны быть в состоянии получить это через что-то вроде этого:

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