GridView中的ObjectDataSource和DeleteMethod

GridView中的ObjectDataSource和DeleteMethod,gridview,objectdatasource,Gridview,Objectdatasource,我试图使用ObjectDataSource为我的GridView指定DeleteMethod,但无论我尝试什么,似乎都不会调用DeleteMethod 我的代码是: <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="dsGridView" AutoGenerateDeleteButton="True"> <C

我试图使用ObjectDataSource为我的GridView指定DeleteMethod,但无论我尝试什么,似乎都不会调用DeleteMethod

我的代码是:

        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataSourceID="dsGridView" AutoGenerateDeleteButton="True">
        <Columns>
            <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" 
                SortExpression="CustomerID" />
            <asp:BoundField DataField="FirstName" HeaderText="FirstName" 
                SortExpression="FirstNenter code hereame" />
            <asp:BoundField DataField="LastName" HeaderText="LastName" 
                SortExpression="LastName" />
            <asp:BoundField DataField="Country" HeaderText="Country" 
                SortExpression="Country" />
        </Columns>
    </asp:GridView>

        <asp:ObjectDataSource ID="dsGridView" runat="server" 
        SelectMethod="GetCustomerByCountry" DeleteMethod="DeleteRow" TypeName="WebApplication1.App_Code.DAL">
        <SelectParameters>
            <asp:ControlParameter 
                ControlID="DropDownList1" 
                DefaultValue="NULL" 
                Name="Country" 
                PropertyName="SelectedValue" 
                Type="String" />
        </SelectParameters>
        <DeleteParameters>
            <asp:Parameter 
                Name="CustomerID" 
                Type="Int32" />
        </DeleteParameters>
    </asp:ObjectDataSource>

public static void DeleteRow(int CustomerID)
    {
        Database1Entities de = new Database1Entities();

        var LQ = (from s in de.Customers
                  where s.CustomerID == CustomerID
                  select s).FirstOrDefault();

        if (LQ != null)
        {
            de.Customers.DeleteObject(LQ);
            de.SaveChanges();
        }
    }

公共静态void DeleteRow(int CustomerID)
{
Database1Entities de=新的Database1Entities();
var LQ=(来自客户数据中的s)
其中s.CustomerID==CustomerID
选择s).FirstOrDefault();
如果(LQ!=null)
{
de.Customers.DeleteObject(LQ);
de.SaveChanges();
}
}
我有一个名为“Database1Entities”的数据库实体模型,它包含4个简单的行。
我遗漏了什么?

您必须将
数据键名添加到Gridview中。View知道您的数据绑定id是什么

<asp:GridView ID="GridView1" runat="server" 
        AutoGenerateColumns="False" 
        DataSourceID="dsGridView" 
        AutoGenerateDeleteButton="True" 
        DataKeyNames="CustomerID">

您必须将
DataKeyNames
添加到Gridview,因为它知道数据绑定的id

<asp:GridView ID="GridView1" runat="server" 
        AutoGenerateColumns="False" 
        DataSourceID="dsGridView" 
        AutoGenerateDeleteButton="True" 
        DataKeyNames="CustomerID">