Q : 如何在 GridView 中创建 CheckBox 项,如果用户选中这些记录如何从 GridView 中删除。
1. GridView
2. checkAll/UncheckAll 按钮
3. 删除所有选中 CheckBox 的按钮
下面是如何在 GridView 中放 CheckBox 。
源文件 :
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="roll_no" HeaderText="Roll No" />
<asp:BoundField DataField="s_name" HeaderText="Student Name" />
<asp:BoundField DataField="class" HeaderText="Class" />
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="ch1" Text='<%# Eval("roll_no") %>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
.CS 文件 : 在 .cs 文件类级别上写如下代码
ArrayList alist = new ArrayList();
protected void Page_Load(object sender, EventArgs e) {
if (!Page.IsPostBack) {
// 填充数据绑定 GridView
}
}
// UN-CHECK 和 Check all 按钮
protected void Button2_Click(object sender, EventArgs e) {
//check all and un-checkAll
if (Button2.Text == "Check All"){
for (int i = 0; i < GridView1.Rows.Count; i++){
CheckBox cbb = (CheckBox)GridView1.Rows[i].FindControl("ch1");
cbb.Checked = false;
}
Button2.Text = "Un-Check";
} else if (Button2.Text == "Un-Check") {
for (int i = 0; i < GridView1.Rows.Count; i++){
CheckBox check = (CheckBox)GridView1.Rows[i].FindControl("ch1");
check.Checked = true ;
}
Button2.Text = "Check All";
}
}
// 删除按钮。删除 web 页面上 GridView 中所有选中行
protected void Button1_Click(object sender, EventArgs e) {
for (int i = 0; i < GridView1.Rows.Count; i++) {
CheckBox cbb;
cbb = (CheckBox)GridView1.Rows[i].FindControl("ch1");
if (cbb.Checked == true) {
alist.Add(i);
}
}
string str = "select * from student";
SqlDataAdapter da = new SqlDataAdapter(str,con);
DataSet ds = new DataSet();
da.Fill(ds);
for (int j = 0; j < alist.Count; j++){
int index = Convert.ToInt32(alist[j]);
string roll = ds.Tables[0].Rows[index][0].ToString();
string qry1 = "delete from student where roll_no='" + roll + "'";
SqlCommand com1 = new SqlCommand(qry1, con);
com1.ExecuteNonQuery();
}
Response.Redirect("default3.aspx"); // Note: 返回到相同页面
}