当前位置:编程学习 > C#/ASP.NET >>

关于CheckBox选中与不选中的问题~求大神~

在GridView中,最前列我放了一个CheckBox,现在我有一个CheckBox的框设置enable的属性为false,也就是不可用了,但是我点击全选Button的时候,这个框子还是会被选中,这个如何解决?
我按钮的事件是这样的:
 protected void btnSelectAll_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < this.gvHD.Rows.Count; i++)
        {
            CheckBox chk = (CheckBox)this.gvHD.Rows[i].FindControl("MsgID");
            chk.Checked = true;
        }
    } --------------------编程问答-------------------- 先判断if(CheckBox1.Enabled) --------------------编程问答-------------------- 加一句判断不就行了
protected void btnSelectAll_Click(object sender, EventArgs e)
  {
  for (int i = 0; i < this.gvHD.Rows.Count; i++)
  {
  CheckBox chk = (CheckBox)this.gvHD.Rows[i].FindControl("MsgID");
  if(chk.Enabled)
  {
    chk.Checked = true;
  }
  }
  } --------------------编程问答-------------------- 就像楼上说的,加一句遍历过程中加一句判断就可以了 --------------------编程问答-------------------- protected void btnSelectAll_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < this.gvHD.Rows.Count; i++)
        {
            CheckBox chk = (CheckBox)this.gvHD.Rows[i].FindControl("MsgID");
            if (chk.Enabled=false)
            {
                chk.Checked = false;
            }
            chk.Checked = true;
        }
    }
判断我也试过了,没用。。。不仅没用,写了这个判断后,当我点击全选后,依然可以全部选中,并且所有的Checkbox都变成灰色不可用的了。。。 --------------------编程问答--------------------
  if(chk.Enabled)
  {
       chk.Checked = true;
  }

--------------------编程问答-------------------- 楼上的,么滴效果哦。。。点全选按钮,还是可以全部都选中哦。。。包括灰色的框子~ --------------------编程问答-------------------- 我是来学习的 --------------------编程问答-------------------- 看看是不是if 没执行 --------------------编程问答-------------------- 执行了。。。 --------------------编程问答-------------------- 看看是不是Enabled 属性的值丢了

就是都是true 没有 false --------------------编程问答-------------------- 那这个属性的值丢了应该怎么解决呢? --------------------编程问答--------------------
引用 5 楼 sandy945 的回复:
if(chk.Enabled)
{
chk.Checked = true;
}

顶起 --------------------编程问答-------------------- 唉。。。。各种纠结。。。不对呢~ --------------------编程问答-------------------- 你是遍历了gridview里的所有的checkbox.
而checkbox 灰化 当然他还是checkbox当然是会被选中的! --------------------编程问答-------------------- if (chk.Enabled=false)
{
    continue;
} --------------------编程问答--------------------  我给你我写的一个全选反选的,  在CheckBox事件中写
    这个效果跟你要的是一样的!

        仅供你学习参考!

页面前台很简单,就是一个数据源控件,绑定数据,就给你描述的那样!


             这个是核心的代码, 另外在给你附加一个 选中获取各个值的代码!!!!
            代码:

               

 protected void CheckBox2_CheckedChanged1(object sender, EventArgs e)
    {
        if (CheckBox2.Checked == true)
        {
            for (int i = 0; i < Repeater1.Items.Count; i++)
            {
                ((CheckBox)Repeater1.Items[i].FindControl("cb1")).Enabled = false;
                ((CheckBox)Repeater1.Items[i].FindControl("cb1")).Checked = true;
            }
        }
        else if (CheckBox2.Checked == false)
        {
            for (int i = 0; i < Repeater1.Items.Count; i++)
            {
                ((CheckBox)Repeater1.Items[i].FindControl("cb1")).Enabled = true;
                ((CheckBox)Repeater1.Items[i].FindControl("cb1")).Checked = false;
            }
        }
    }

   

   页面有个按钮,获取选中的值!

        代码如下:

            

    protected void Button1_Click(object sender, EventArgs e)
    {
        if (CheckBox2.Checked == false)
        {
            

            for (int i = 0; i < Repeater1.Items.Count; i++)
            {
                if (((CheckBox)Repeater1.Items[i].FindControl("cb1")).Checked == true)
                {

                    Response.Write(((Button)Repeater1.Items[i].FindControl("Button2")).CommandArgument.ToString());

                }
 
            }

        }
        else
        {
            for (int i = 0; i < Repeater1.Items.Count; i++)
            {

               Response.Write( ((Button)Repeater1.Items[i].FindControl("Button2")).CommandArgument.ToString());

            }
        
        }
    }
--------------------编程问答-------------------- for (int i = 0; i < this.GridView1.Rows.Count; i++)
        {
            CheckBox chk = (CheckBox)this.GridView1.Rows[i].FindControl("MsgID");
            if (chk.Enabled == true)
            {
                chk.Checked = true;
            }
            
        }
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,