使用ObjectDataSource从Gridview中删除记录

时间:2011-07-12 08:12:20

标签: c# .net asp.net gridview objectdatasource

我有一个gridview,它从对象方法绑定它的行:

public DataSet GetObjects() {     DataSet ds = new DataSet();     DataTable dt = new DataTable();     var source = from 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从数据库中删除它然后重新绑定Gridview ..但是如何?将gridID中的CommentsID传递给此方法 public void 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,以及如何删除记录?

1 个答案:

答案 0 :(得分:3)

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

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

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