我有一个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中显示数据时,所有数据都有一个复选框(如图所示)
然后,当我点击Delete Button
时,删除gridview和table上的所有已检查数据。
我该怎么做?
最诚挚的问候, Soner
答案 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。