asp页面中的update命令不起作用

Leo*_*ett 2 asp.net sqldatasource templatefield updatecommand

好的,我已经通过使用更新参数解决了我的最后一个问题,并将模板字段放在我的网格视图上而不是绑定字段上。

\n\n

显示正常,唯一的问题是更新按钮似乎不起作用。当我单击它时,它只是返回到上一个窗口,而不更新数据库中的数据字段。

\n\n

你能看一下下面的代码并告诉我我是否错过了什么吗?谢谢....

\n\n

在职的:

\n\n
 <asp:GridView DataKeyNames="BenutzerID" ID="grdBenutzer" runat="server" Visible="False" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" OnRowCommand="GridView1_RowCommand">\n            <Columns>\n                <asp:BoundField ReadOnly="true" DataField="BenutzerID" HeaderText="ID" />\n                <asp:TemplateField HeaderText="Titel">\n                    <ItemTemplate>\n                        <%# Eval("Titel")%>\n                    </ItemTemplate>\n                    <EditItemTemplate>\n                        <asp:TextBox runat="server" ID="txtTitel" Text=\'<%# Bind("Titel")%>\'></asp:TextBox>\n                    </EditItemTemplate>\n                </asp:TemplateField>\n                <asp:TemplateField HeaderText="Bezeichnung">\n                    <ItemTemplate>\n                        <%# Eval("Bezeichnung")%>\n                    </ItemTemplate>\n                    <EditItemTemplate>\n                        <asp:DropDownList AppendDataBoundItems="true" runat="server" ID="ddwnBezeichnung" Text=\'<%# Bind("Bezeichnung")%>\'>\n                            <asp:ListItem Text="Mitarbeiter" Value="Mitarbeiter"></asp:ListItem>\n                            <asp:ListItem Text="Praktikant" Value="Praktikant"></asp:ListItem>\n                            <asp:ListItem Text="Azubi" Value="Azubi"></asp:ListItem>\n                            <asp:ListItem Text="Umsch\xc3\xbcler" Value="Umsch\xc3\xbcler"></asp:ListItem>\n                        </asp:DropDownList>\n                    </EditItemTemplate>\n                </asp:TemplateField>\n                <asp:TemplateField HeaderText="Vorname">\n                    <ItemTemplate>\n                        <%# Eval("Vorname")%>\n                    </ItemTemplate>\n                    <EditItemTemplate>\n                        <asp:TextBox runat="server" ID="txtVorname" Text=\'<%# Bind("Vorname")%>\'/>\n                    </EditItemTemplate>\n                </asp:TemplateField>\n                <asp:TemplateField HeaderText="Nachname">\n                    <ItemTemplate>\n                        <%# Eval("Nachname")%>\n                    </ItemTemplate>\n                    <EditItemTemplate>\n                        <asp:TextBox runat="server" ID="txtNachname" Text=\'<%# Bind("Nachname")%>\'/>\n                    </EditItemTemplate>\n                </asp:TemplateField>\n                <asp:BoundField ReadOnly="true" HeaderText="Geburtsdatum" DataField="Geburtsdatum" />\n                <asp:BoundField ReadOnly="true" HeaderText="Geburtsort" DataField="Geburtsort" />\n                <asp:TemplateField HeaderText="Stra\xc3\x9fe">\n                    <ItemTemplate>\n                        <%# Eval("Stra\xc3\x9fe")%>\n                    </ItemTemplate>\n                    <EditItemTemplate>\n                        <asp:TextBox runat="server" ID="txtStra\xc3\x9fe" Text=\'<%# Bind("Stra\xc3\x9fe")%>\' />\n                    </EditItemTemplate>\n                </asp:TemplateField>\n                <asp:TemplateField HeaderText="Nationalit\xc3\xa4t">\n                    <ItemTemplate>\n                        <%# Eval("Nationalit\xc3\xa4t")%>\n                    </ItemTemplate>\n                    <EditItemTemplate>\n                        <asp:TextBox runat="server" ID="txtNationalit\xc3\xa4t" Text=\'<%# Bind("Nationalit\xc3\xa4t")%>\' />\n                    </EditItemTemplate>\n                </asp:TemplateField>\n                <asp:TemplateField HeaderText="Hausnummer">\n                    <ItemTemplate>\n                        <%# Eval("Hausnummer")%>\n                    </ItemTemplate>\n                    <EditItemTemplate>\n                        <asp:TextBox runat="server" ID="txtHausnummer" Text=\'<%# Bind("Hausnummer")%>\' />\n                    </EditItemTemplate>\n                </asp:TemplateField>\n                <asp:TemplateField HeaderText="PLZ">\n                    <ItemTemplate>\n                        <%# Eval("PLZ")%>\n                    </ItemTemplate>\n                    <EditItemTemplate>\n                        <asp:TextBox runat="server" ID="txtPLZ" Text=\'<%# Bind("PLZ")%>\' />\n                    </EditItemTemplate>\n                </asp:TemplateField>\n                <asp:TemplateField HeaderText="Ort">\n                    <ItemTemplate>\n                        <%# Eval("Ort")%>\n                    </ItemTemplate>\n                    <EditItemTemplate>\n                        <asp:TextBox runat="server" ID="txtOrt" Text=\'<%# Bind("Ort")%>\' />\n                    </EditItemTemplate>\n                </asp:TemplateField>\n                <asp:TemplateField HeaderText="Land">\n                    <ItemTemplate>\n                        <%# Eval("Land")%>\n                    </ItemTemplate>\n                    <EditItemTemplate>\n                        <asp:DropDownList AppendDataBoundItems="true" runat="server" ID="ddwnLand" Text=\'<%# Bind("Land")%>\'>\n\n                        </asp:DropDownList>\n                    </EditItemTemplate>\n                </asp:TemplateField>\n                <asp:TemplateField HeaderText="Mobil">\n                    <ItemTemplate>\n                        <%# Eval("Mobil")%>\n                    </ItemTemplate>\n                    <EditItemTemplate>\n                        <asp:TextBox runat="server" ID="txtMobil" Text=\'<%# Bind("Mobil")%>\' />\n                    </EditItemTemplate>\n                </asp:TemplateField>\n                <asp:BoundField ReadOnly="true" DataField="Status" HeaderText="Status" />\n                <asp:TemplateField HeaderText="Benutzerart">\n                    <ItemTemplate>\n                        <%# Eval("Benutzerart")%>\n                    </ItemTemplate>\n                    <EditItemTemplate>\n                        <asp:DropDownList AppendDataBoundItems="true" runat="server" ID="ddwnBenutzerart" Text=\'<%# Bind("Benutzerart")%>\'>\n                            <asp:ListItem Text="Mitarbeiter" Value="Mitarbeiter"></asp:ListItem>\n                            <asp:ListItem Text="Gesch\xc3\xa4ftsf\xc3\xbchrung" Value="Gesch\xc3\xa4ftsf\xc3\xbchrung"></asp:ListItem>\n                            <asp:ListItem Text="F\xc3\xbchrungskraft" Value="F\xc3\xbchrungskraft"></asp:ListItem>\n                            <asp:ListItem Text="Administrator" Value="Administrator"></asp:ListItem>\n                        </asp:DropDownList>\n                    </EditItemTemplate>\n                </asp:TemplateField>\n                <asp:TemplateField HeaderText="Homepage">\n                    <ItemTemplate>\n                        <%# Eval("Homepage")%>\n                    </ItemTemplate>\n                    <EditItemTemplate>\n                        <asp:TextBox runat="server" ID="txtHomepage" Text=\'<%# Bind("Homepage")%>\' />\n                    </EditItemTemplate>\n                </asp:TemplateField>\n                <asp:TemplateField HeaderText="Email">\n                    <ItemTemplate>\n                        <%# Eval("Email")%>\n                    </ItemTemplate>\n                    <EditItemTemplate>\n                        <asp:TextBox runat="server" ID="txtEmail" Text=\'<%# Bind("Email")%>\' />\n                    </EditItemTemplate>\n                </asp:TemplateField>\n                <asp:TemplateField HeaderText="Festnetz">\n                    <ItemTemplate>\n                        <%# Eval("Festnetz")%>\n                    </ItemTemplate>\n                    <EditItemTemplate>\n                        <asp:TextBox runat="server" ID="txtFestnetz" Text=\'<%# Bind("Festnetz")%>\' />\n                    </EditItemTemplate>\n                </asp:TemplateField>\n                <asp:TemplateField HeaderText="Fax">\n                    <ItemTemplate>\n                        <%# Eval("Fax")%>\n                    </ItemTemplate>\n                    <EditItemTemplate>\n                        <asp:TextBox runat="server" ID="txtFax" Text=\'<%# Bind("Fax")%>\' />\n                    </EditItemTemplate>\n                </asp:TemplateField>\n                <asp:TemplateField HeaderText="Urlaubstage">\n                    <ItemTemplate>\n                        <%# Eval("UrlaubstageInsgesamt")%>\n                    </ItemTemplate>\n                    <EditItemTemplate>\n                        <asp:TextBox runat="server" ID="txtUrlaubstageInsgesamt" Text=\'<%# Bind("UrlaubstageInsgesamt")%>\' />\n                    </EditItemTemplate>                        \n                </asp:TemplateField>\n                <asp:CommandField HeaderText="\xc3\x84ndern" ButtonType="Button" ShowEditButton="true" ShowCancelButton="true" />\n                <asp:CommandField HeaderText="Neu" ButtonType="Button" ShowInsertButton="true" />\n                <asp:CommandField HeaderText="Archivieren" ButtonType="Button" ShowDeleteButton="true"/>\n            </Columns>\n        </asp:GridView>\n
Run Code Online (Sandbox Code Playgroud)\n

Jos*_*ell 5

在您的 s 中到处都有以下代码EditItemTemplate

Text='<%# Eval("fieldName")%>'
Run Code Online (Sandbox Code Playgroud)

您需要将其更改为:

Text='<%# Bind("fieldName")%>'
Run Code Online (Sandbox Code Playgroud)

Eval用于单向(只读)数据绑定。您需要双向数据绑定,以便更新数据库值。


您还需要在您的中设置该DataKeyNames属性GridView

<asp:GridView ID="grdBenutzer" runat="server" Visible="False" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" OnRowCommand="GridView1_RowCommand" DataKeyNames="BenutzerID" >
Run Code Online (Sandbox Code Playgroud)

根据文档(上面链接),这是自动更新功能正常工作所必需的:

使用 DataKeyNames 属性指定表示数据源主键的一个或多个字段。您必须设置 DataKeyNames 属性才能使 GridView 控件的自动更新和删除功能发挥作用。