1

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();
        }
    }

4 つの単純な行を保持する「Database1Entities」というデータベース エンティティ モデルがあります。私は何が欠けていますか?

4

1 に答える 1

1

DataKeyNamesデータバインドのIDを知っているGridviewに追加する必要があります。

<asp:GridView ID="GridView1" runat="server" 
        AutoGenerateColumns="False" 
        DataSourceID="dsGridView" 
        AutoGenerateDeleteButton="True" 
        DataKeyNames="CustomerID">
于 2012-07-06T20:27:33.357 に答える