执行效果:DataList项模板里放上CheckBox和需要显示的数据,让选定一系列的CheckBox后,单击全部删除按钮可实现同时删除选定的项,并作出是否删除有数据的判断.
全部删除按钮放在DataList的项模板以外,DataList的DataKeyField设置为每项的主键.
bool flag = false; //定义一个是否删除了数据的标记
foreach (DataListItem dlt in DataList1.Items) //循环取出DataList里的每一项
{
//用DataListItem的FindControl方法找到CheckBox,参数为CheckBox的ID,返回为Control类型,将其转换成CheckBox
CheckBox ckb = (CheckBox)dlt.FindControl("cbDelete");
if (ckb.Checked) //判断CheckBox是否选中
{
int id = Convert.ToInt32(DataList1.DataKeys[dlt.ItemIndex]); //取出DataList该项的主键,用于数据库删除操作
PostOperate po = new PostOperate(); //实例化封装的数据操作类
flag = po.Delete(id); //执行类中的Delete方法删除数据,删除成功则返回True,如果没有删除数据,flag为false
}
}
if (flag) //根据flag的值判断是否删除有数据
{
JS.AlertAndReturn(this.Page, "文章删除成功!", "postmanager.aspx");
}
else
{
JS.AlertAndReturn(this.Page, "没有选定要删除的项!", "postmanager.aspx");
}
foreach (DataListItem dlt in DataList1.Items) //循环取出DataList里的每一项
{
//用DataListItem的FindControl方法找到CheckBox,参数为CheckBox的ID,返回为Control类型,将其转换成CheckBox
CheckBox ckb = (CheckBox)dlt.FindControl("cbDelete");
if (ckb.Checked) //判断CheckBox是否选中
{
int id = Convert.ToInt32(DataList1.DataKeys[dlt.ItemIndex]); //取出DataList该项的主键,用于数据库删除操作
PostOperate po = new PostOperate(); //实例化封装的数据操作类
flag = po.Delete(id); //执行类中的Delete方法删除数据,删除成功则返回True,如果没有删除数据,flag为false
}
}
if (flag) //根据flag的值判断是否删除有数据
{
JS.AlertAndReturn(this.Page, "文章删除成功!", "postmanager.aspx");
}
else
{
JS.AlertAndReturn(this.Page, "没有选定要删除的项!", "postmanager.aspx");
}