如何写出优雅的代码?

everything is null
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

老问题,GridView中嵌入CheckBox,事件无法相应

Posted on 2008-01-18 12:03  灰色  阅读(1987)  评论(2)    收藏  举报
问题特征
GridView中嵌入CheckBox,用来控制当前行的选中与否,用来判断是否加入计算。我为GridView添加了一个模板列,里面加入了一个CheckBox,设为默认选中。问题来了,当第一次点击的时候,也就是CheckBox从选中状态切换到非选中状态时,可以触发事件,但是再次点击,却无法触发事件。
但是,如果默认初始的时候CheckBox没有选中,则一切正常。
可能的原因:我能想到的与之有关的原因是,CheckBox的Checked属性默认是False,也就是说如果默认设为True,则在页面加载时,就触发了一次Changed事件,最关键的是页面的状态发生了变化,而且我发现,此时GridView的EnableViewState必须设为False,否则CheckBox的事件干脆就没反应。
具体的原因,还请各位知道的告诉一声,我还糊涂呢。
解决方案
首先将GridView中的CheckBox默认设为False,页面加载的时候,用脚本将它们全部选中,一切正常了。
function SelectAllCompany()
        
{
            
var chktb = document.getElementById("gvKellyIndex");
            
var chks = chktb.getElementsByTagName("input");
            
for(var i=0;i<chks.length;i++)
            
{
                chks[i].checked 
=true;
            }

        }