C# .net中gridview的批量修改怎么实现
如题,想一次性修改多条数据,为了避免一条一条的修改,所以想实现批量修改功能。
如下图:选中前面的复选框(要注销原因相同),当点击预注销时,弹出一个框,在框里输入注销原因,然后点击注销提交,把选中的行注销原因一次性更新过来。
请高手指点,并给出代码,先在这谢谢了。。答案满意后可追加分。
protected void Button1_Click(object sender, EventArgs e)
{
string orderid_all = "";
//int count = 0;
for (int i = 0; i < gdv_Order.Rows.Count; i++)
{
GridViewRow row = gdv_Order.Rows[i];
Label ln = (Label)row.Cells[0].FindControl("LabVisible");
Label orderid = (Label)row.Cells[0].FindControl("LblOrderId");
CheckBox box = (CheckBox)row.Cells[0].FindControl("CheckSelect");
if (box.Checked == true)
{
orderid_all += orderid.Text + ",";
//count++;
}
}
orderid_all = orderid_all.Substring(0, orderid_all.Length - 1);
Response.Redirect("OrderDistriButeInfo.aspx?oid_all="陆中袜 + orderid_all + "&department=" + Server.UrlEncode(Session["Unit"].ToString()) + "&pl=pl");
}
if (Request.QueryString["pl"] =="pl")
{
//把传过来的orderid 分割循环保存
string orderid_all = Request.QueryString["oid_all"].ToString();
char[] sp = (",").ToCharArray();
string[] all_orderid = orderid_all.Split(sp);
for (int j = 0; j < all_orderid.Length; j++)
{
string sql_add = "insert into tsmorderdepartmentperson(orderid,name,orderstate,department,setdatetime,setdatehour,setdateminutes) values('"培辩 + all_orderid[j] + "','" + Name.Text + "'早激,'" + "操作中" + "','" + "渠道部" + "','" + tbDate.Text + "','" + tbHours.Text + "','" + tbMinutes.Text + "')"; ;
list.ExeSql(sql_add);
}
}
else
{
string sql_add = "insert into tsmorderdepartmentperson(orderid,name,orderstate,department,setdatetime,setdatehour,setdateminutes) values('" + Request.QueryString["OrderId"] + "','" + Name.Text + "','" + "操作中" + "','" + "渠道部" + "','" + tbDate.Text + "','" + tbHours.Text + "','" + tbMinutes.Text + "')"; ;
list.ExeSql(sql_add);
}
你自己改改吧,功能类似,思路就是把id合起来传值。接收值,拆分了,再。。。。
在注销Button的升信Click事件中,循环遍历GridView的每个行。
对于每次遍历。
取得CheckBox实例,查看是否选中。
下面是烂拆基本代码框架
for(int i = 0 ; i <饥笑枣 GridView1.Rows.Count - 1 ; i++)
{
CheckBox cb = GridView1.Rows[i].FindControl("CheckBox1");
if(cb.Checked)
{
//do something......
}
}
foreach(datagirdrow dr in grid.rows)
{
if(dr["选择"].value == true)
{
//弹出一个框,再框里面输入贺早注销原因
string sTemp =string.empty;//临时存放输入的注销原因的
//让你弹出的框中,返回数值到sTemp
from弹出窗口 fm注销原因 = new from弹出窗口(ref sTemp);//自己建立一个窗体吧
//到这步sTemp就变了值了
if(sTemp !=string.empty)
{
dr["注销原因"].value=sTemp;//更改当前行的注销原因
}
}
}
PS:自己改改,我这个是winform的做法。手销form么,你可以用另外一个新建一个页面毕拍游。
在注销Button的Click事件中,循环遍历GridView的每个行。毕袜
对于每行拍次遍历。
取得CheckBox实例,查看是手带激否选中。
下面是基本代码框架
for(int i = 0 ; i < GridView1.Rows.Count - 1 ; i++)
{
CheckBox cb = GridView1.Rows[i].FindControl("CheckBox1");
if(cb.Checked)
{
//do something......
}
}
你可以动态生亏乎成复选框的ID或者name,销雹悉然后再获取到肆答你选中的复选框,有了复选框,不就等于有了主键吗。。 有了主键。。怎么操作不行。。