【问题标题】:How to update asp:detailsview如何更新 asp:detailsview
【发布时间】:2019-09-20 02:39:33
【问题描述】:

我的 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>

希望您能帮我想办法更新记录。

【问题讨论】:

    标签: html sql asp.net gridview webforms


    【解决方案1】:

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

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

    【讨论】:

    • 这似乎有效,但是一旦我按下更新按钮,我就会收到错误“无效的回发或回调参数。事件验证是使用配置中的 或 在页面中。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合预期,请使用 ClientScriptManager。 RegisterForEventValidation 方法,以便注册回发或回调数据以进行验证。"
    • 使用 ASP.NET Ajax 更新面板。 (如果您添加或删除列表框,请将列表框放在更新面板中并触发更新。这样视图状态和相关字段将获得更新并且事件验证将通过。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多