我想点击datagird 里的编辑按钮时  DGAccList_EditCommand 事件
datagird里的checkbox 为可用:
CheckBox CBSty=(CheckBox)e.Item.FindControl("CBSty");
CBSty.Enabled=true;cbsty时 checkbox的id
怎么不行的?? 
该怎么弄
谢谢

解决方案 »

  1.   

    加上判断
    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
    {
      CheckBox CBSty=(CheckBox)e.Item.FindControl("CBSty");
      CBSty.Enabled=true;}
      

  2.   

    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
    {
      e.Item.Cells[0].controls[0].enable = true;//cells[0],为你的checkbox所在的列
    }
      

  3.   

    e.Item.Cells[0].controls[0]   没有 enable 的属性啊??
      

  4.   


    foreach (Control c in e.Item.Cells[0].Controls)
    {
    }或
    e.Item.Cells[0].FindControl("CBSty");
    试试
      

  5.   

    checkBox  的控件我用 findcontrol 找到,读属性都是没有问题的。
    就是不能在程序里修改他的属性,  CBSty.Enabled=true;跟本不起作用,
    response.write(CBSty.Enabled)   都是有值的怎么搞的?
    谢谢
      

  6.   

    可能是你在pageload()里写了datagrid的绑定吧!
    使得刚刚给得值又变成false了。
    我猜的,你自己看看.
      

  7.   

    我load里加了 !IspostBack 的判断的,checkbox还没有绑定啊,我就先实现他的显示的功能而已。
      

  8.   

    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
    {
    ((CheckBox)e.Item.Cells[4].Controls[0]).Enabled = true ;
    }我转换了下,可是出错了??:指定的转换无效。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 指定的转换无效。源错误: 
    行 140: if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
    行 141: {
    行 142: ((CheckBox)e.Item.Cells[4].Controls[0]).Enabled = true;//cells[0],为你的checkbox所在的列
    行 143: }
    行 144: