问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

asp.net 中的checkbox如何设置为不可选中、点不下去?

发布网友 发布时间:2022-04-27 17:49

我来回答

7个回答

懂视网 时间:2022-04-27 22:10

  这里使用asp.net2.0的TreeView控件结合JavaScript实现权限树的部分功能。
  假设权限树中有如下三条规则:
  1、该节点可以访问,则他的父节点也必能访问;
  2、该节点可以访问,则他的子节点也都能访问;
  3、该节点不可访问,则他的子节点也不能访问。

代码如下:
//获取元素指定tagName的父元素
function public_GetParentByTagName(element, tagName)
{
    var parent = element.parentNode;
    var upperTagName = tagName.toUpperCase();
    //如果这个元素还不是想要的tag就继续上溯
    while (parent && (parent.tagName.toUpperCase() != upperTagName))
    {
        parent = parent.parentNode ? parent.parentNode : parent.parentElement;
    }
    return parent;
}

//设置节点的父节点Cheched——该节点可访问,则他的父节点也必能访问
function setParentChecked(objNode)
{
    var objParentDiv = public_GetParentByTagName(objNode,"div");
    if(objParentDiv==null || objParentDiv == "undefined")
    {
        return;
    }
    var objID = objParentDiv.getAttribute("ID");
    objID = objID.substring(0,objID.indexOf("Nodes"));
    objID = objID+"CheckBox";
    var objParentCheckBox = document.getElementById(objID);
    if(objParentCheckBox==null || objParentCheckBox == "undefined")
    {
        return;
    }
    if(objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox")
    return;
    objParentCheckBox.checked = true;
    setParentChecked(objParentCheckBox);
}

//设置节点的子节点uncheched——该节点不可访问,则他的子节点也不能访问
function setChildUnChecked(divID)
{
    var objchild = divID.children;
    var count = objchild.length;
    for(var i=0;i<objchild.length;i++)
    {
        var tempObj = objchild[i];
        if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
        {
            tempObj.checked = false;
        }
        setChildUnChecked(tempObj);
    }
}

//设置节点的子节点cheched——该节点可以访问,则他的子节点也都能访问
function setChildChecked(divID)
{
    var objchild = divID.children;
    var count = objchild.length;
    for(var i=0;i<objchild.length;i++)
    {
        var tempObj = objchild[i];
        if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
        {
            tempObj.checked = true;
        }
        setChildChecked(tempObj);
    }
}

//触发事件
function CheckEvent()
{

    var objNode = event.srcElement;

    if(objNode.tagName!="INPUT" || objNode.type!="checkbox")
    return;

    if(objNode.checked==true)
    {
        setParentChecked(objNode);
        var objID = objNode.getAttribute("ID");
        var objID = objID.substring(0,objID.indexOf("CheckBox"));
        var objParentDiv = document.getElementById(objID+"Nodes");
        if(objParentDiv==null || objParentDiv == "undefined")
        {
            return;
        }
        setChildChecked(objParentDiv);
    }
    else
    {
        var objID = objNode.getAttribute("ID");
        var objID = objID.substring(0,objID.indexOf("CheckBox"));
        var objParentDiv = document.getElementById(objID+"Nodes");
        if(objParentDiv==null || objParentDiv == "undefined")
        {
            return;
        }
        setChildUnChecked(objParentDiv);
    }
}

然后在page_load事件中将TreeView与js事件绑定上:

this.TreeView1.Attributes.Add("onclick", "CheckEvent()");

 

热心网友 时间:2022-04-27 19:18

组一个计数器,选中一个加1,但达到选择数目上限时,把checkbox属性设为readonly或不可用,就ok了。

热心网友 时间:2022-04-27 20:36

在后台判断
for(int i=0;i<gridviews.rows.count;i++)
{
//获取checkbox选择的数目
if(获取的数目==数目上限)
{
checkbox控件enabled=false;
}
}

热心网友 时间:2022-04-27 22:11

加入disabled标记即可(不好意思,check没有readonly标记,是disabled标记)。追问不好意思,我没说清楚。我的问题是, 如何在点击一个checkbox前,让它默认执行某一个判断函数,并且这个函数的参数为当前行数。

热心网友 时间:2022-04-28 00:02

判断:就在当前行里找CheckBox控件,用控件的个数来判断咯。
if(个数 > ?){
/////.......
}追问不好意思,我没说清楚。我的问题是, 如何在点击一个checkbox前,让它默认执行某一个判断函数,并且这个函数的参数为当前行数。

热心网友 时间:2022-04-28 02:10

回答 共2条
2012-1-4 11:57 pan365wang | 二级

加入readonly 标记即可。

同意追问不好意思,我没说清楚。我的问题是, 如何在点击一个checkbox前,让它默认执行某一个判断函数,并且这个函数的参数为当前行数。

追答加载的时候能满足吗?你就说你想实现什么效果吧

热心网友 时间:2022-04-28 04:35

1楼正解
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
零基础怎么自学动漫插画,可报个绘画班或有目的地自学 小白如何学插画,一定要坚持多练 有限责任公司的清算流程及如何执行清算 有限责任公司清算程序是什么 有限公司自行清算流程 魅族m1在哪里区别连通版和移动版 请问魅蓝note的flyme系统,移动定制版和移动公开版是什么意思 魅蓝note flyme移动公开版和公开版有啥区别? 魅族公开版是什么意思? 梦见一个你喜欢的人变成了你的表哥是什么情况? 黄石车辆购置税在哪里交 买房刚贷的房贷款能马上商转公吗 商转公担保手续费3个点 急!(在线等)关于房产证更名,房贷商转公,担保公司的一些疑问(重庆) 马伯骞说感情中没有时间轴,你认可他的观点吗? 雄狮少年一共出现几首歌? 雄狮少年男主和女主在一起了吗 《雄狮少年》告诉我们什么道理? 陈业雄身高 《心动的信号4》收官,这个节目有怎样的缺点? mooc如何查询学生数据记录? Asp.net中如何获取checkbox的值代码??? Windows编程和linux编程该学哪个? 王文学的小天才手表位置 韩国人吃泡菜为何喜欢配着五花肉一起? 我想考研,张友生老师是在湖南大学还是在湖南师范大学担任导师,还是别的地方 呢大衣如果自己洗 应该怎么洗合适 我有一篇科技论文需要修改润色?找哪个呢? 科技论文润色公司有熟悉的吗?请问这的Editsprings做的怎样? 科技论文修改找什么公司润色较好些? 硬柿子用石灰石泡过才可以吃。除了石灰!用清水泡可以吃吗? 生柿子可以去皮用糖水泡来吃吗 汽车数字仪表盘 精工solar系列罗马数字表盘的女表 表盘数字是I II III IIIV IV 这种代表数字·上方有个小盘里面有太阳月亮!下面写着tourbillon 用风、烟花、雷雨、小狗、霎时、顿时、忽然、过了一会儿、一会儿工夫造句100字以上 语文造句求100句 100字造句 急!!!!我注册了雅思考试还没付款,可是发现报名错了,想重新报名怎么办 不想考了,请问如何申请雅思退考 在英国报考的雅思考试如何取消 急 雅思考试 已经预定注册 想取消 toefl未确认付费的考试怎么取消 一张脸,一个头像,举双手,大象,猜一成 蜡笔小新大象的图片~~用作QQ头像 有种动物。头像大象,身子像大象。腿像大象。*也像象。但不是大像。请问这种动物是什么 苹果系统怎么设置好看的qq动态头像 ASP.NET Checkbox 选中 有人用小米盒子玩小鸡模拟器的么 青红萝卜放在一起煲汤到底有没有毒?