C# gridview中checkbox2个问题
我在gridview中放入一个模板列,其中head,item中都有checkbox,有2个需求。一,点击headrow中的checkbox,实现全选/全不选;二,游客登陆...
我在gridview中放入一个模板列,其中head,item中都有checkbox,有2个需求。一,点击headrow中的checkbox,实现全选/全不选;二,游客登陆时,所有checkbox禁用,管理员登陆,checkbox都能用。
第一需求,headrow中的checkbox,我用的是html控件,其他的checkbox时服务器控件,然后用js容易实现全选,但第二个需求,headrow那个checkbox我怎么都弄不好(主要时在CS中写不出代码,貌似html控件在cs里没enabled属性),如果时服务器控件,就可以了,但第一个需求又不会搞了,有没有两全的方法,请高手告诉我,我把注册送的分数全压上了
禁用checkbox代码for(int i=0;i<GridView.Rows.Count;i++){
CheckBox cb=(checkbox)GridView.Rows[i].Cell[0].FindControl("cbdelete");
cb.Enabled=true;
}
headrow的那个 checkbox 就不能这样写了,我也不会写,请高手指点,我尝试了好多了
我知道用html控件,很容易实现全选/全不选,但是我还想在cs代码中实现checkbox的功能禁用,比如设置html控件的disabled属性,服务器控件checkbox的enabled。我还尝试了用response.write("<script>.....</script>"),可惜我定位不到那个checkbox 展开
第一需求,headrow中的checkbox,我用的是html控件,其他的checkbox时服务器控件,然后用js容易实现全选,但第二个需求,headrow那个checkbox我怎么都弄不好(主要时在CS中写不出代码,貌似html控件在cs里没enabled属性),如果时服务器控件,就可以了,但第一个需求又不会搞了,有没有两全的方法,请高手告诉我,我把注册送的分数全压上了
禁用checkbox代码for(int i=0;i<GridView.Rows.Count;i++){
CheckBox cb=(checkbox)GridView.Rows[i].Cell[0].FindControl("cbdelete");
cb.Enabled=true;
}
headrow的那个 checkbox 就不能这样写了,我也不会写,请高手指点,我尝试了好多了
我知道用html控件,很容易实现全选/全不选,但是我还想在cs代码中实现checkbox的功能禁用,比如设置html控件的disabled属性,服务器控件checkbox的enabled。我还尝试了用response.write("<script>.....</script>"),可惜我定位不到那个checkbox 展开
5个回答
展开全部
为head里面的复选框的onclick事件绑定一下javascript函数就可以实现了.
<script type="text/javascript">
function CheckAll(checked) //true/勾选 or false/不勾选
{
var form = document.getElementById("form1")
for (var i=0;i<form.elements.length;i++) //对这个表单里的元素进行循环
{
var e = form.elements[i]; //一个一个元素判断
if (e.name.indexOf("cb_Check") != 0 && e.disabled!=true) //如果该元素的name属性不为cb_Check并且disabled!=true.即:该控件可用时
e.checked = checked; //控元素的checked与当前选中的控件checked保持一致.即:全选/全不选
}
}
</script>
原理:
写javascript的时候要根据控件的客户端id或name来查找控件,从而操作控件.
在GridView中模板列内定义的控件在给浏览器解析的时候会自动生成客户端id和name
拿CheckBox为例,生成的id:gv_main__ct002_cb_Check 和 name:gv_main:_ct002:cb_Check
html:<input id="gv_main__ct002_cb_Check" type="checkbox" name="gv_main:_ct002:cb_Check" />
这个在浏览器输出后右键->源文件中可以看到.
id中:"gv_main__ct002_"部分 和 name中 "gv_main:_ct002:"部分 就是自动生成的.
里面的数字没什么意思,只是因为GridView中生成了许多个相同控件后的需要一个名称编号以区分每个控件.
"cb_Check"是我为服务器控件CheckBox控件定义的ID.这个需要在以上脚本中使用,用以来查找控件.
以上代码是找到控件,设置选与不选,也可设置禁用与可用.
cs代码:
ClientScript.RegisterClientScriptBlock(Page.GetType(), "", "<script language='javascript' defer>document.getElementById('客户端控件ID').disabled=true;</script>")
<script type="text/javascript">
function CheckAll(checked) //true/勾选 or false/不勾选
{
var form = document.getElementById("form1")
for (var i=0;i<form.elements.length;i++) //对这个表单里的元素进行循环
{
var e = form.elements[i]; //一个一个元素判断
if (e.name.indexOf("cb_Check") != 0 && e.disabled!=true) //如果该元素的name属性不为cb_Check并且disabled!=true.即:该控件可用时
e.checked = checked; //控元素的checked与当前选中的控件checked保持一致.即:全选/全不选
}
}
</script>
原理:
写javascript的时候要根据控件的客户端id或name来查找控件,从而操作控件.
在GridView中模板列内定义的控件在给浏览器解析的时候会自动生成客户端id和name
拿CheckBox为例,生成的id:gv_main__ct002_cb_Check 和 name:gv_main:_ct002:cb_Check
html:<input id="gv_main__ct002_cb_Check" type="checkbox" name="gv_main:_ct002:cb_Check" />
这个在浏览器输出后右键->源文件中可以看到.
id中:"gv_main__ct002_"部分 和 name中 "gv_main:_ct002:"部分 就是自动生成的.
里面的数字没什么意思,只是因为GridView中生成了许多个相同控件后的需要一个名称编号以区分每个控件.
"cb_Check"是我为服务器控件CheckBox控件定义的ID.这个需要在以上脚本中使用,用以来查找控件.
以上代码是找到控件,设置选与不选,也可设置禁用与可用.
cs代码:
ClientScript.RegisterClientScriptBlock(Page.GetType(), "", "<script language='javascript' defer>document.getElementById('客户端控件ID').disabled=true;</script>")
展开全部
html控件 <input type="checkbox" id="chk" runat="server" />
后台同样可以用 chk.disabled=true;
后台同样可以用 chk.disabled=true;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用html的checkbox控件,js控制全选和显不显示,数据绑定checkbox value附值,request["checkbox"]获取
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你就全用服务器控件来解决吧
然后在页面刷新的时候来判断是否被选了
然后在页面刷新的时候来判断是否被选了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那你这要考虑权限,checkbox有一属性enabled
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询