/ / FindControl ("someTextBox") w GridView nie wysyłając zaktualizowanej wartości - asp.net, gridview

FindControl ("someTextBox") w GridView nie wysyła zaktualizowanej wartości - asp.net, gridview

Im zapełnianie GridView z listy, więc jestem zmuszonyużywać elementów sterujących TemplateField w celu umożliwienia edycji. Wymaga to wyświetlenia TextBox wypełnionego oryginalną wartością w trybie edycji i użyciu FindControl, aby uzyskać nową wartość przy przesyłaniu aktualizacji.

Problem został znalezionyTextBox.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>

I kod w mojej procedurze obsługi zdarzeń aktualizacji

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

Odpowiedzi:

4 dla odpowiedzi № 1

Czy Twój gridview jest bindowany przy każdym odświeżeniu? Może to wyjaśnić, dlaczego nigdy nie otrzymasz zaktualizowanej wartości, ponieważ widok siatki zostanie ponownie powiązany przed odczytaniem pola tekstowego.

Czy możesz wkleić pełną metodę aktualizacji?


0 dla odpowiedzi nr 2

Dostałeś kod w niewłaściwej procedurze obsługi zdarzeń. Przenieś go do obsługi zdarzenia Edycja, aby wypełnić pole tekstowe, gdy użytkownik kliknie polecenie Edytuj dla wiersza.