gridview和checkbox的问题,在多选的情况下还是只执行一次。。。
gridview是绑定数据库的2张表的一些字段动态生成的,里面加入了checkbox,然后我想通过对checkbox的值checked是否为true来执行一些操作,其实就...
gridview是绑定数据库的2张表的一些字段动态生成的,里面加入了checkbox,然后我想通过对checkbox的值checked是否为true来执行一些操作,其实就是如果为ture,我就获取girdview的第一个字段的值,然后在数据库一个表里面update一个字段的数据,因为我update的字段会影响到我gridview显示的内容(效果就是勾选了什么,点击按钮后就会在Gridview上面相应的少那一行),所以要重新绑定一次girdview。接下来说下我的问题,就是我单选一个checkbox时,是可以正确执行的,然后在gridview上,我选择的那一行也会消失掉,但是当我多选几个checkbox后,就不行了,虽然可以执行,但是界面显示只会少一行,而不是少了我多选的那几行。。求解决。。。。代码如下:
public partial class Buyruku : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt = new rukuDAO().dingdan();
if (!IsPostBack)
{
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string BuyId;
for (int i = 0; i <= GridView1.Rows.Count-1; i++)
{
CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if ( cb.Checked == true )
{
BuyId = this.GridView1.Rows[i].Cells[1].Text;
Modelruku rk = new Modelruku(BuyId);
new rukuDAO().ruku(rk);
DataTable dt2 = new DataTable();
dt2 = new rukuDAO().dingdan();
GridView1.DataSource = dt2; //其实我知道是这里数据重新绑定的问题。。。但是我想了半天也知道放在哪里好
GridView1.DataBind();
}
}
} 展开
public partial class Buyruku : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt = new rukuDAO().dingdan();
if (!IsPostBack)
{
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string BuyId;
for (int i = 0; i <= GridView1.Rows.Count-1; i++)
{
CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if ( cb.Checked == true )
{
BuyId = this.GridView1.Rows[i].Cells[1].Text;
Modelruku rk = new Modelruku(BuyId);
new rukuDAO().ruku(rk);
DataTable dt2 = new DataTable();
dt2 = new rukuDAO().dingdan();
GridView1.DataSource = dt2; //其实我知道是这里数据重新绑定的问题。。。但是我想了半天也知道放在哪里好
GridView1.DataBind();
}
}
} 展开
2个回答
展开全部
改为:
string BuyId;
for (int i = 0; i <= GridView1.Rows.Count-1; i++)
{
if ( cb.Checked == true )
{
BuyId+=this.GridView1.Rows[i].Cells[1].Text+“,”;
}
}
Modelruku rk = new Modelruku(BuyId.Trim(','));
new rukuDAO().ruku(rk);
DataTable dt2 = new DataTable();
dt2 = new rukuDAO().dingdan();
GridView1.DataSource = dt2; //其实我知道是这里数据重新绑定的问题。。。但是我想了半天也知道放在哪里好
GridView1.DataBind();
---------------------------------------------------
for循环里边的if 只保存用来做为条件的id 把所有条件都保存完 跳出循环 然后执行update 一次性把所有选中的全部update就行了 试试效果吧
string BuyId;
for (int i = 0; i <= GridView1.Rows.Count-1; i++)
{
if ( cb.Checked == true )
{
BuyId+=this.GridView1.Rows[i].Cells[1].Text+“,”;
}
}
Modelruku rk = new Modelruku(BuyId.Trim(','));
new rukuDAO().ruku(rk);
DataTable dt2 = new DataTable();
dt2 = new rukuDAO().dingdan();
GridView1.DataSource = dt2; //其实我知道是这里数据重新绑定的问题。。。但是我想了半天也知道放在哪里好
GridView1.DataBind();
---------------------------------------------------
for循环里边的if 只保存用来做为条件的id 把所有条件都保存完 跳出循环 然后执行update 一次性把所有选中的全部update就行了 试试效果吧
网易云信
2023-12-06 广告
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同...
点击进入详情页
本回答由网易云信提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询