所有数据都有Gridview for Delete的复选框

时间:2011-01-27 13:36:34

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

我有一个Gridview(Gridview1)和一个Button(删除)。 和AVUKAT table(列 - > HESAP,MUSTERI,AVUKAT)

我的Gridview代码是

<asp:GridView ID="GridView1" 
            runat="server" AutoGenerateColumns="False" 
            CellPadding="4" DataSourceID="GridviewDataSource" ForeColor="#333333" 
            GridLines="None" Width="329px" AllowSorting="True" >

我的DataSource代码是

<asp:SqlDataSource ID="GridviewDataSource" runat="server" 
            ConnectionString="<%$ ConnectionStrings:SqlServerCstr %>" 
            SelectCommand="SELECT * FROM [AVUKAT] ORDER BY [MUSTERI]">

一个按钮(删除)

我想要的是,当我在Gridview中显示数据时,所有数据都有一个复选框(如图所示)

enter image description here

然后,当我点击Delete Button时,删除gridview和table上的所有已检查数据。

我该怎么做?

最诚挚的问候, Soner

2 个答案:

答案 0 :(得分:3)

这篇文章准确回答了您正在寻找的内容,并附有完整的代码示例:http://csharpdotnetfreak.blogspot.com/2009/04/delete-multiple-rows-gridview-checkbox.html

单击“删除”按钮时会发生魔力。代码循环遍历gridview并检查每一行是否有复选框。当它找到一个选中的复选框时,它会将该行的ID存储在stringcollection中。扫描完整个GridView后,它会删除stringcollection中的所有ID。

protected void btnDelete_Click(object sender, EventArgs e)
{
//Create String Collection to store 
//IDs of records to be deleted 
  StringCollection idCollection = new StringCollection();
  string strID = string.Empty;

  //Loop through GridView rows to find checked rows 
   for (int i = 0; i < GridView1.Rows.Count; i++)
   {
    CheckBox chkDelete = (CheckBox)
       GridView1.Rows[i].Cells[0].FindControl("chkSelect");
            if (chkDelete != null)
            {
                if (chkDelete.Checked)
                {
                 strID = GridView1.Rows[i].Cells[1].Text;
                 idCollection.Add(strID);
                }
            }
        }

        //Call the method to Delete records 
        DeleteMultipleRecords(idCollection);

        // rebind the GridView
        GridView1.DataBind();
    }

答案 1 :(得分:0)

使用TemplateField,对于ItemTemplate,放置一个服务器端复选框。单击“删除”时,循环访问GridView.Rows集合,对于项目或备用项目行,然后在第一个单元格中找到该复选框,看看是否已选中,然后删除它。

HTH。