2009-11-06 5 views
1

Im заполняет GridView из списка, поэтому я вынужден использовать элементы управления TemplateField, чтобы разрешить редактирование. Для этого требуется отображение TextBox, заполненного исходным значением, в режиме редактирования и с помощью FindControl, чтобы получить новое значение в обновлении submit.FindControl ("someTextBox") в GridView не отправляет обновленное значение

Проблема foundTextBox.Text == "OriginalTextBoxValue"

<asp:TemplateField HeaderText="A Field"> 
        <ItemTemplate> 
         <asp:Label ID="_theLabel" runat="server" Text='<%# Eval("AField") %>' /> 
        </ItemTemplate> 
        <EditItemTemplate> 
         <asp:TextBox ID="_theTextBox" runat="server" Text='<%# Eval("AField") %>' /> 
        </EditItemTemplate> 
       </asp:TemplateField> 

И код в моем обновления обработчика событий

TextBox newText = (TextBox)_myGridView.Rows[e.RowIndex].FindControl("_thTextBox"); 
//newText.Text == the old value of the text box 

ответ

4

Является ли ваше сетчатое изображение привязанным при каждой обратной передаче? Это может объяснить, почему вы никогда не получаете обновленное значение, потому что gridview воссоздается перед чтением текстового поля.

Не могли бы вы вставить свой полный метод обновления?

+0

У меня такая же проблема, и пока я ДУМАЮ, это то, что происходит, я действительно не понимаю, как это исправить. – sylverfyre

0

Вы получили код позади в неверном обработчика событий. Переместите его в обработчик событий редактирования, чтобы он заполнил текстовое поле всякий раз, когда пользователь нажимает на команду «Редактировать» для строки.

Смежные вопросы