.cs
private void DelButton_Click(object sender, System.EventArgs e)
{
int delid;
for(int i=0;i <this.dgNews.Items.Count;i++)
{
CheckBox cbx = (CheckBox)this.dgNews.Items[i].FindControl("cbxid");
if(cbx.Checked=true)
{
delid =Convert.ToInt32(dgNews.DataKeys[i]);
string sql = "delete from news where id = "+delid+"";
OleDbConnection conn=db.createConnection();
conn.Open();
OleDbCommand cmd = new OleDbCommand(sql,conn);
cmd.ExecuteNonQuery();
}
}
}改成:if(cbx.Checked[color=#0000FF]==true)[/color]
private void DelButton_Click(object sender, System.EventArgs e)
{
int delid;
for(int i=0;i <this.dgNews.Items.Count;i++)
{
CheckBox cbx = (CheckBox)this.dgNews.Items[i].FindControl("cbxid");
if(cbx.Checked=true)
{
delid =Convert.ToInt32(dgNews.DataKeys[i]);
string sql = "delete from news where id = "+delid+"";
OleDbConnection conn=db.createConnection();
conn.Open();
OleDbCommand cmd = new OleDbCommand(sql,conn);
cmd.ExecuteNonQuery();
}
}
}改成:if(cbx.Checked[color=#0000FF]==true)[/color]
是不是我绑定的时候出了问题?
代码
DataSet MyDataSet = new DataSet();
MyDataAdapter.Fill(MyDataSet,"news");
dgNews.DataSource = MyDataSet.Tables["news"].DefaultView;
dgNews.DataKeyField = "id";
dgNews.DataBind();
我都试过了 不行 不管怎么选都取不到值
if(cbx.Checked=true) 是不管怎么选所有ID都过去了.
帮偶想想办法吧 我晕了
我都试过了 不行 不管怎么选都取不到值
if(cbx.Checked=true) 是不管怎么选都取所有的ID
if(!IsPostBack)
{
//绑定dgNews
}
代码
DataSet MyDataSet = new DataSet();
MyDataAdapter.Fill(MyDataSet,"news");
dgNews.DataSource = MyDataSet.Tables["news"].DefaultView;
dgNews.DataKeyField = "id";
dgNews.DataBind();
{
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (CheckBox2.Checked == true)
{
cbox.Checked = true;
}
else
{
cbox.Checked = false;
}
}
}
protected void Button2_Click(object sender, EventArgs e)
{
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (cbox.Checked == true)
{
string sqlstr = "delete from news where id ='" + GridView1.DataKeys[i].Value + "'";
DbHelperSQL.ExecuteSql(sqlstr);
}
}
}///////////////////////////////
DataSet MyDataSet = new DataSet();
MyDataAdapter.Fill(MyDataSet,"news");
dgNews.DataSource = MyDataSet.Tables["news"].DefaultView;
dgNews.DataKeyField = "id";
dgNews.DataBind();
改为:
DataSet ds= new DataSet();
this.GridView1.DataSource =ds;
GridView1.DataKeyNames=new string [] {"id"};
this.GridView1.DataBind();
ds.Dispose();
ds.Clear();
<asp:datagrid id="dgNews" Width="100%" Runat="server" showheader="false" AutoGenerateColumns="False">
中加上DataKeyField="id"
private void DelButton_Click(object sender, System.EventArgs e)
{
string delids=Request.Form[cbxId.ClientID];
try{
string sql = "delete from news where id in( "+delids+")";
OleDbConnection conn=db.createConnection();
conn.Open();
OleDbCommand cmd = new OleDbCommand(sql,conn);
cmd.ExecuteNonQuery();
conn.Close();
}
catch{}
}
这样应该可以
if(cbx.Checked==true) 改成他试试....