编辑/删除项目在GridView中不起作用

时间:2016-09-22 09:08:39

标签: asp.net-mvc

我有一个带GridView的MVC ASP.NET项目。安装“启用编辑”,“启用删除”,数据列转换为TemplateField。 SqlDataSource已连接。表有一个主键。对于SqlDataSource安装“生成INSERT,UPDATE和DELETE语句”。单击“编辑”或“删除”会生成页面重新加载,但无法编辑或删除数据。

<asp:GridView ID="GridView1" runat="server" DataKeyNames="Id" DataSourceID="SqlDataSource1" AutoGenerateColumns="False" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2"  >
        <Columns>
            <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
            <asp:TemplateField HeaderText="Id" SortExpression="Id">
                <EditItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Eval("Id") %>'></asp:Label>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("Id") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Caption" SortExpression="Caption">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Caption") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label2" runat="server" Text='<%# Bind("Caption") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Text" SortExpression="Text">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Text") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label3" runat="server" Text='<%# Bind("Text") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            
            <asp:CheckBoxField HeaderText="ABC" DataField="Checked" />
        </Columns>
        <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
        <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
        <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
        <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
        <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
        <SortedAscendingCellStyle BackColor="#FFF1D4" />
        <SortedAscendingHeaderStyle BackColor="#B95C30" />
        <SortedDescendingCellStyle BackColor="#F1E5CE" />
        <SortedDescendingHeaderStyle BackColor="#93451F" />
    </asp:GridView>

1 个答案:

答案 0 :(得分:2)

您不能 1 使用WebForms控件(名称空间System.Web.UI.WebControlsSystem.Web.UI.HtmlControls)与MVC的操作和控制器。

WebForms控件假设服务器上发生了页面生命周期:但MVC控制器和操作不存在这一系列事件(及相关代码组织)。

1 您将找到使用不同级别的黑客进行此操作的示例。要有一定的成功,但你将与潮流作斗争。你最好完全切换范式:页面是MVC或WebForms。混合只是为了以后节省痛苦。