如何在GridView中添加一checkbox行

[复制链接]
查看11 | 回复5 | 2015-8-30 10:33:00 | 显示全部楼层 |阅读模式
在gridview的...之间加上这一句,OK然后选中的逻辑自己判断不行再消息我那你直接在gridview模拟一行checkbox,修改的时候检查一下该列对应的checkbox是否选中,不就OK了
回复

使用道具 举报

千问 | 2015-8-30 10:33:00 | 显示全部楼层
GridVie你在设计窗口的智能标识中去编辑他的Item,里面就可以直接添加CheckBox控件了。或者也可以直接在html中直接写
回复

使用道具 举报

千问 | 2015-8-30 10:33:00 | 显示全部楼层
你在grideview中加入一个checkbox行.然后给每个checkbox绑定事件,这个事件必须放在page_load中才生效.也不能 判断IsPostback.
回复

使用道具 举报

千问 | 2015-8-30 10:33:00 | 显示全部楼层
全是治标不治本的回答,分我要了,就两句话:任何对象中,只要包含Controls属性的都可以添加控件,找你单元格的Controls自己写。还有想让一行无效容易,让一列只有遍历每行的对应索引元素了,本来gridview里的数据就是由行组成的不是由列组成的。拿下!gridview 有个方法:findcontrol(),参数是checkbox空间的id,然后用checkbox cb = gridview.findcontrol(“checkbox1”)if(cb.checked){}
回复

使用道具 举报

千问 | 2015-8-30 10:33:00 | 显示全部楼层
1、在GridView上启用编辑;2、在RowCreated事件委托函数中添加代码,用Html标记在Header上创建复选框(没有按楼主要求添加新行,我觉得这样更好,若嫌太宽,则添加换行符),如:
if (e.Row.RowType == DataCont,rolRowType.Header)
{
for (int i = 1; i < e.Row.Cells.Count; i++)
{
string nameAndId = "CheckBox" + i.ToString();
e.Row.Cells.Text = ""+e.Row.Cells.Text;
}
}3、在RowEditing事件委托函数中记录所选编辑行索引,如:
ViewState["editLine"] = e.NewEditIndex;4、最后在PreRender事件委托函数中,为当前编辑行的各列的文本框,建立OnKeyPress事件客户端处理函数,以禁止或允许编辑,如:
if (ViewState["editLine"] != null)
{
GridViewRow row=GridView1.Rows[Convert.ToInt32(ViewState["editLine"])];
for (int i = 1; i < row.Cells.Count; i++)
{
if (row.Cells.HasControls())
{
TextBox tb = (TextBox)row.Cells.Controls[0];
string checkBoxId = "CheckBox" + i.ToString();
tb.Attributes.Add("onKeyPress", "javascript:if(document.getElementById('" + checkBoxId + "').checked) return false;");
}
}
}
回复

使用道具 举报

千问 | 2015-8-30 10:33:00 | 显示全部楼层
加入一个模板列,里面放入一个checkbox
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行