c# - 使用 ObjectDataSource 从 Gridview 中删除记录

标签 c# .net asp.net gridview objectdatasource

我有一个 gridview,它通过对象方法绑定(bind)其行:

公共(public)数据集 GetObjects() { 数据集 ds = new 数据集(); DataTable dt = new DataTable(); var source = 来自 CommentsList 中的 p 选择新的 { p.CommentID, p.Img, p.Name, p.Comment };

dt.Columns.Add("CommentsID");
dt.Columns.Add("Img");
dt.Columns.Add("Name");
dt.Columns.Add("Comment");

foreach (var item in source)
{



    DataRow userDetailsRow=dt.NewRow();
    userDetailsRow["Img"] = item.Img;
    userDetailsRow["Name"] = item.Name;

    DataRow commentsID = dt.NewRow();
    userDetailsRow["CommentsID"] = item.CommentID;

    DataRow comments = dt.NewRow();
    userDetailsRow["Comment"] = item.Comment;
    dt.Rows.Add(userDetailsRow);
    //dt.Rows.Add(comments);
}
ds.Tables.Add(dt);
return ds;

} 我的删除方法。应该接收 commentsID 将其从数据库中删除,然后重新绑定(bind) Gridview。但是如何呢?我是否将 CommentsID 从 gridview 传递给此方法 公共(public)无效RemoveComment(int CommentsID) { }

GridViews 两个模板:

 <Columns>
      <asp:TemplateField>
                        <ItemTemplate>
                            <asp:Label ID="lblMessage" runat="server"  Text='<%# Bind("Comment") %>'></asp:Label>
                        </ItemTemplate>
       </asp:TemplateField>

           <asp:TemplateField>
                        <ItemTemplate>
                            <asp:Image ID="imgName" runat="server"  imageUrl='<%# Bind("Img") %>'></asp:Image><br />
                            <asp:Hyperlink ID="hyperLink" runat="server"  Text='<%# Bind("Name") %>' ></asp:Hyperlink>
                        </ItemTemplate>
       </asp:TemplateField>
   </Columns>

现在,我想删除一行,该怎么做?我知道 DataKeyNames 存在..但是如何将 commentsID 设置为我的 dataKeyNames,以及如何删除记录?

最佳答案

您可以为objectDataSource指定Delete方法,这将非常简单......例如

 <asp:ObjectDataSource ID="ods" runat="server" DeleteMethod="RemoveComment" SelectMethod="GetCityByStateID" TypeName="">
        <DeleteParameters>
            <asp:Parameter Name="CommentsID" Type="Int32" />
         </DeleteParameters>
          <SelectParameters>
          </SelectParameters>
  </asp:ObjectDataSource>

每当点击 Gridview 删除按钮时,都会自动触发此方法并删除记录。

关于c# - 使用 ObjectDataSource 从 Gridview 中删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6661234/

相关文章:

c# - 为什么 Color 使用 Int32 而不是 Byte?

c# - 查找每个月的第三个星期日出现在给定的两个日期之间

c# - ASP.NET 网站的自定义登录机制

c# - 从 IList 迭代动态属性

c# - 如何使用 Windsor 将依赖项注入(inject)自定义 RoleProvider?

c# - 数据库之间的外键,复制表

c# - 邮件消息的“收件人”、“抄送”、“密件抄送”允许为 null (system.net.mail.mailmessage)

c# - 在 C# 中自动化 Web 部署

c# - 使用 .NET/C# 控制硬件(TFT 显示器、监视器)

c# - HTTP HEAD 响应 - 设置 Content-Length