我在GridView的最后一列用TemplateField加了CheckBox,在页面上加按钮,执行被选中的行,例如:删除,如何能得到被选中行的DataKey值,或key所在列的值允许CheckBox多选请给点代码或思路
解决方案 »
- asp.net的Treeview,想把根结点下的子节点不显示,下面的代码怎么没用呢?
- ASP.NET Response等属性,不是静态的,为什么可以Page.Response?
- 程序调试出错!!!请高手帮忙指点...
- 帮忙测试论坛,听棠SPL + FCKeditor + cnveryBBS完美结合
- 小弟马上去杭州求职,请杭州的兄弟给点意见
- 急:哪位高手可以帮我解释下这问题的原因???
- 求一论坛代码,只是作为自己写论坛的参考(怕走冤枉路,急)
- 奥运中国第一个金牌诞生!中国的!女子10米气步枪!
- c#怎么实现 文件(jpg或word文挡)上传到sqlserver2000数据库呀?
- 在Webform中的button的accesskey属性能用吗?
- 类型转化 string和object
- 紧急求助!如何在WEB.CONFIG或是ASPX页面中定位WEB应用程序或网站的绝对路径!!!详情请进
var strPageChed;
strPageChed = document.res_usr_reg_form.pageChecked.value;
if(strPageChed.search("'"+IdValue+"'")!=-1){
strPageChed = strPageChed.replace(",'" + IdValue + "'" , "");
}else {
strPageChed = strPageChed + ",'" + IdValue + "'" + "";
}
document.form1.pageChecked.value = strPageChed;
}
吧这个函数添加到checkbox的onclick事件里。
参数idvalue是checkbox的id。
点击的同时就会把这个checkbox的id添加到字符串里。
生成的字符串格式为'','checkbox01','checkbox02','checkbox03','checkbox04'
然后再把这个字符串作为hidden在提交的时候再页面间传递。
最后在动态生成纪录的时候,用这个字符串验证一下,是否处于被点击过的状态就行了。用这种格式生成字符串的好处是,可以方便的添加在sql语句里面。
比如:
select id,name from table1
用此语句生成用来显示的记录。那么就可以用这个字符串生成一个带checkbox状态的表。如下:
select checkedtable.id as checkedbox,a.id,a.name from table1
left outer join
(select id from table1 where id in (string)) as checkedtable --- string为上面生成的字符串
on table1.id=checkedtable.id
这样你就生成一个前面带一列checkbox状态的表了。
select checkedtable.id as checkedbox,a.id,a.name from table1 as a
left outer join
(select id from table1 where id in (string)) as checkedtable --- string为上面生成的字符串
on table1.id=checkedtable.id
protected void Button1_Click(object sender, EventArgs e)
{
string key = "";
for (int i = 0; i < GridView1.Rows.Count; i++)
{
if (((CheckBox)GridView1.Rows[i].Cells[CheckBox所在的列数].FindControl("CheckBox1")).Checked)
{
key += ",'" + GridView1.DataKeys[GridView1.Rows[i].DataItemIndex].ToString() + "'";
}
}然后写delete语句,如delete from A where b in (key)
具体的就不写了。
}
我的代码:foreach (GridViewRow row in GridView1.Rows)
{
CheckBox cb = (CheckBox)row.FindControl("CheckBoxID");
if (cb.Checked)
{
ItemCode = GridView1.DataKeys[row.RowIndex].ToString();
//......
}
}
代码简洁易懂,谢谢各位!