首页 > 解决方案 > 如何更新 asp:detailsview

问题描述

我在我的 asp.net 项目中有一个 detailsview,它链接到一个 asp:datasource。其中一个字段不应更新,因此我将此字段设置为 teplatefield。尽管选中了“启用更新/删除”选项,但在尝试更新记录时,详细信息视图和数据源保持不变。

我试图删除并添加详细信息视图和 sqldatasource。尝试在回发和加载时使用“.databind()”。

<asp:DetailsView Width="100%" HorizontalAlign="Center" runat="server" ID="DTSgeg" AutoGenerateRows="False" CellPadding="4" DataKeyNames="KlantID" DataSourceID="DTSGegevens" ForeColor="#333333" GridLines="None" OnPageIndexChanging="DTSgeg_PageIndexChanging">

    <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
    <CommandRowStyle BackColor="#E2DED6" Font-Bold="True" />
    <EditRowStyle BackColor="#999999" />
    <FieldHeaderStyle BackColor="#E9ECF1" Font-Bold="True" />
    <Fields>
        <asp:TemplateField HeaderText="KlantID" InsertVisible="False" SortExpression="KlantID">
            <EditItemTemplate>
                <asp:Label ID="Label1" runat="server" Text='<%# Eval("KlantID") %>'></asp:Label>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text='<%# Bind("KlantID") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="naam" HeaderText="naam" SortExpression="naam" />
        <asp:BoundField DataField="voornaam" HeaderText="voornaam" SortExpression="voornaam" />
        <asp:BoundField DataField="gemeente" HeaderText="gemeente" SortExpression="gemeente" />
        <asp:BoundField DataField="adres" HeaderText="adres" SortExpression="adres" />
        <asp:BoundField DataField="btwnummer" HeaderText="btwnummer" SortExpression="btwnummer" />
        <asp:BoundField DataField="email" HeaderText="email" SortExpression="email" />
        <asp:BoundField DataField="tel" HeaderText="tel" SortExpression="tel" />
        <asp:TemplateField HeaderText="AantalAangevraagd" SortExpression="AantalAangevraagd">
            <EditItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("AantalAangevraagd") %>'></asp:TextBox>
            </EditItemTemplate>
            <InsertItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("AantalAangevraagd") %>'></asp:TextBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label2" runat="server" Text='<%# Bind("AantalAangevraagd") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:CommandField ShowEditButton="True" />
    </Fields>
    <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
    <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
    <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />

</asp:DetailsView>

我希望你能帮助我找到一种方法,以便更新记录。

标签: htmlsqlasp.netgridviewwebforms

解决方案


您需要在区域下再添加一个字段。例如

<asp:CommandField  ButtonType="Button"  ShowDeleteButton="true"  
    DeleteText="Delete Record" ShowEditButton="true"  
    EditText="Edit Record" />

推荐阅读