【问题标题】:ObjectDataSource and DeleteMethod in GridViewGridView 中的 ObjectDataSource 和 DeleteMethod
【发布时间】:2012-07-06 18:45:24
【问题描述】:

我正在尝试使用 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();
        }
    }

我有一个名为“Database1Entities”的数据库实体模型,它包含 4 个简单的行。 我错过了什么?

【问题讨论】:

    标签: gridview objectdatasource


    【解决方案1】:

    您必须将DataKeyNames 添加到 Gridview 才能知道您的数据绑定的 id 是什么。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多