Verbindliche Wert an textbox innerhalb des gridview
Habe ich Probleme mit der Bindung einen Wert von einem Feld innerhalb eines gridview-Steuerelement, um ein Textfeld, welches innerhalb des gridview-Steuerelements sowie. Ich bin die beabsichtigen, dies zu tun, für die Bearbeitung der Tabelle.
Ich versuche mit eval und binden, aber die textbox wird nicht angezeigt, die Werte und ich habe absolut keine Ahnung, warum.
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:GridView ID="gvBS" runat="server" AutoGenerateColumns="false" DataKeyNames="ID" SkinID="gvWithoutWidth">
<Columns>
<asp:CommandField ShowEditButton="true" EditImageUrl="~/Images/GridView/gv_edit.png" ButtonType="Image"
CancelImageUrl="~/Images/GridView/gv_cancel.png" UpdateImageUrl="~/Images/GridView/gv_update.png"/>
<asp:TemplateField HeaderText="Sollmonat" HeaderStyle-HorizontalAlign="Left">
<EditItemTemplate>
<asp:TextBox ID="tbSollMonat" runat="server" Text='<%# Eval("SollMonat") %>'></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvSollMonat" ValidationGroup="Update" runat="server"
ControlToValidate="tbSollMonat" ErrorMessage="Bitte Sollmonat (dd.mm.yyyy) angeben"
SetFocusOnError="true">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="revSollMonat" ValidationGroup="Update" runat="server"
ValidationExpression="^\d+$" ControlToValidate="tbSollMonat">*</asp:RegularExpressionValidator>
</EditItemTemplate>
<ItemTemplate>
<%# Eval("SollMonat")%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
Die Sache ist die, dass es funktioniert, innerhalb der ItemTemplate definiert, aber nicht innerhalb des EditItemTemplate-element. Wirklich keine Ahnung, was das problem ist.
Code hinter:
Sub gvBS_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs) Handles gvBS.RowEditing
gvBS.EditIndex = e.NewEditIndex
End Sub
Sub gvBS_RowCancelingEdit() Handles gvBS.RowCancelingEdit
Me.gvBS.EditIndex = -1
gvBS_DataBind()
End Sub
- Tut Sie das GridView-Bearbeiten-Modus, wenn der Benutzer auf den link klickt?
- Ja, obwohl ich brauche, um klicken Sie auf die Bearbeiten-img/ - Taste zweimal. Die Textfelder bleiben leer, obwohl.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich gehe davon aus, dass die
GridView
betritt nie Bearbeiten-Modus, da Sie nicht die Handhabung derRowEditing
Veranstaltung oder Sie nichtDataBind
es, nachdem Sie sich gesetzt habengvBS.EditIndex = e.NewEditIndex;
.codebehind (
BindGrid
ist die Methode, die databinds grid):Sollten Sie auch daran denken, databind Sie nur auf dem ersten laden, nicht an aufeinanderfolgenden postbacks, wenn
ViewState
aktiviert ist(Standard). Daher können Sie die SeiteIsPostBack
Eigenschaft:DataTable
)... es funktioniert wie erwartet. Sie haben nicht datengebundene Ihre GridView in RowEditing. Siehe mein code.Versuchen Sie Binden anstelle von Eval im EditItemTemplate wie diese