команда обновления на странице asp не работает

хорошо, я решил свой последний вопрос, используя вместо этого параметры обновления и помещая поля шаблонов в мое представление сетки вместо связанных полей.

он отображается нормально, единственное, что кнопка обновления, похоже, не работает. когда я нажимаю на него, он просто возвращается в предыдущее окно без обновления полей данных в базе данных.

не могли бы вы взглянуть на следующий код и сказать мне, не пропустил ли я что-то здесь? Благодарность....

РАБОТАЮЩИЙ:

 <asp:GridView DataKeyNames="BenutzerID" ID="grdBenutzer" runat="server" Visible="False" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" OnRowCommand="GridView1_RowCommand">
            <Columns>
                <asp:BoundField ReadOnly="true" DataField="BenutzerID" HeaderText="ID" />
                <asp:TemplateField HeaderText="Titel">
                    <ItemTemplate>
                        <%# Eval("Titel")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox runat="server" ID="txtTitel" Text='<%# Bind("Titel")%>'></asp:TextBox>
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Bezeichnung">
                    <ItemTemplate>
                        <%# Eval("Bezeichnung")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:DropDownList AppendDataBoundItems="true" runat="server" ID="ddwnBezeichnung" Text='<%# Bind("Bezeichnung")%>'>
                            <asp:ListItem Text="Mitarbeiter" Value="Mitarbeiter"></asp:ListItem>
                            <asp:ListItem Text="Praktikant" Value="Praktikant"></asp:ListItem>
                            <asp:ListItem Text="Azubi" Value="Azubi"></asp:ListItem>
                            <asp:ListItem Text="Umschüler" Value="Umschüler"></asp:ListItem>
                        </asp:DropDownList>
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Vorname">
                    <ItemTemplate>
                        <%# Eval("Vorname")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox runat="server" ID="txtVorname" Text='<%# Bind("Vorname")%>'/>
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Nachname">
                    <ItemTemplate>
                        <%# Eval("Nachname")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox runat="server" ID="txtNachname" Text='<%# Bind("Nachname")%>'/>
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:BoundField ReadOnly="true" HeaderText="Geburtsdatum" DataField="Geburtsdatum" />
                <asp:BoundField ReadOnly="true" HeaderText="Geburtsort" DataField="Geburtsort" />
                <asp:TemplateField HeaderText="Straße">
                    <ItemTemplate>
                        <%# Eval("Straße")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox runat="server" ID="txtStraße" Text='<%# Bind("Straße")%>' />
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Nationalität">
                    <ItemTemplate>
                        <%# Eval("Nationalität")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox runat="server" ID="txtNationalität" Text='<%# Bind("Nationalität")%>' />
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Hausnummer">
                    <ItemTemplate>
                        <%# Eval("Hausnummer")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox runat="server" ID="txtHausnummer" Text='<%# Bind("Hausnummer")%>' />
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="PLZ">
                    <ItemTemplate>
                        <%# Eval("PLZ")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox runat="server" ID="txtPLZ" Text='<%# Bind("PLZ")%>' />
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Ort">
                    <ItemTemplate>
                        <%# Eval("Ort")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox runat="server" ID="txtOrt" Text='<%# Bind("Ort")%>' />
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Land">
                    <ItemTemplate>
                        <%# Eval("Land")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:DropDownList AppendDataBoundItems="true" runat="server" ID="ddwnLand" Text='<%# Bind("Land")%>'>

                        </asp:DropDownList>
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Mobil">
                    <ItemTemplate>
                        <%# Eval("Mobil")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox runat="server" ID="txtMobil" Text='<%# Bind("Mobil")%>' />
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:BoundField ReadOnly="true" DataField="Status" HeaderText="Status" />
                <asp:TemplateField HeaderText="Benutzerart">
                    <ItemTemplate>
                        <%# Eval("Benutzerart")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:DropDownList AppendDataBoundItems="true" runat="server" ID="ddwnBenutzerart" Text='<%# Bind("Benutzerart")%>'>
                            <asp:ListItem Text="Mitarbeiter" Value="Mitarbeiter"></asp:ListItem>
                            <asp:ListItem Text="Geschäftsführung" Value="Geschäftsführung"></asp:ListItem>
                            <asp:ListItem Text="Führungskraft" Value="Führungskraft"></asp:ListItem>
                            <asp:ListItem Text="Administrator" Value="Administrator"></asp:ListItem>
                        </asp:DropDownList>
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Homepage">
                    <ItemTemplate>
                        <%# Eval("Homepage")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox runat="server" ID="txtHomepage" Text='<%# Bind("Homepage")%>' />
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Email">
                    <ItemTemplate>
                        <%# Eval("Email")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox runat="server" ID="txtEmail" Text='<%# Bind("Email")%>' />
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Festnetz">
                    <ItemTemplate>
                        <%# Eval("Festnetz")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox runat="server" ID="txtFestnetz" Text='<%# Bind("Festnetz")%>' />
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Fax">
                    <ItemTemplate>
                        <%# Eval("Fax")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox runat="server" ID="txtFax" Text='<%# Bind("Fax")%>' />
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Urlaubstage">
                    <ItemTemplate>
                        <%# Eval("UrlaubstageInsgesamt")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox runat="server" ID="txtUrlaubstageInsgesamt" Text='<%# Bind("UrlaubstageInsgesamt")%>' />
                    </EditItemTemplate>                        
                </asp:TemplateField>
                <asp:CommandField HeaderText="Ändern" ButtonType="Button" ShowEditButton="true" ShowCancelButton="true" />
                <asp:CommandField HeaderText="Neu" ButtonType="Button" ShowInsertButton="true" />
                <asp:CommandField HeaderText="Archivieren" ButtonType="Button" ShowDeleteButton="true"/>
            </Columns>
        </asp:GridView>

person LeonidasFett    schedule 14.03.2013    source источник


Ответы (1)


Везде, где у вас есть следующий код в ваших EditItemTemplates:

Text='<%# Eval("fieldName")%>'

Вам нужно изменить его на это:

Text='<%# Bind("fieldName")%>'

Eval предназначен для односторонней (только для чтения) привязки данных. Вам нужна двусторонняя привязка данных для обновления значений базы данных.


Вам также необходимо установить свойство DataKeyNames< /a> в вашем GridView:

<asp:GridView ID="grdBenutzer" runat="server" Visible="False" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" OnRowCommand="GridView1_RowCommand" DataKeyNames="BenutzerID" >

Это необходимо для работы функции автоматического обновления в соответствии с документацией (ссылка выше):

Используйте свойство DataKeyNames, чтобы указать поле или поля, представляющие первичный ключ источника данных. Необходимо задать свойство DataKeyNames, чтобы функции автоматического обновления и удаления элемента управления GridView работали.

person Josh Darnell    schedule 14.03.2013
comment
я сделал это так, он все еще не обновляется... я загрузил свой новый код выше... - person LeonidasFett; 14.03.2013
comment
@LeonidasFett Вам также нужно добавить это в свою разметку GridView: DataKeyNames="BenutzerID" - person Josh Darnell; 14.03.2013