在窗体中一个datalist控件id是dl,在其中放一个checkbox控件,id是ck,然后通过陕西.吴旗的分页控件来分页,在datalist的外边放一个button,想实现删除所有选中checkbox的数据,,,但,我只能删除在本页中选中的数据,不知道大家还有没有好的办法,给提供一下代码,我的代码如下:
private void ImageButton5_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
string strconn1=ConfigurationSettings.AppSettings["lyb"];
SqlConnection conn1=new SqlConnection(strconn1);
conn1.Open();
string strsql1="delete from main where id=@id ";
SqlCommand cmd1=new SqlCommand(strsql1,conn1);
cmd1.Parameters.Add("@id",SqlDbType.Int );
foreach(DataListItem chklst in dl.Items )
{
if(((CheckBox)chklst.FindControl("ck")).Checked)
{

cmd1.Parameters["@id"].Value=(int)dl.DataKeys[chklst.ItemIndex ];
cmd1.ExecuteNonQuery();
}
 
}
conn1.Close();
 Response.Redirect("default.aspx"); }

解决方案 »

  1.   

    你可以用Cache或者Application来保存前面的记录,每页的打勾记录最后在删除时统一处理!
      

  2.   

    你可以编一个check函数:
    private void CheckCbx()
    {
    LabID.Text="";
    for(int i=0;i<DataGrid1.Items.Count;i++)
    {
    CheckBox CbxTable=(CheckBox)DataGrid1.Items[i].FindControl("CbxSelect");
    if(CbxTable.Checked==true)
    {
    if(LabID.Text=="")
    {
    LabID.Text=DataGrid1.Items[i].Cells[1].Text.Trim();
    }
    else
    {
    LabID.Text=LabID.Text+","+DataGrid1.Items[i].Cells[1].Text.Trim();
    }
    }
    }
    }
    strTableID=LabID.Text.Trim();
    strSql="delete from USER_TABLE where ID in(" + strTableID + ")" ;这样就OK了