您的位置:首页 > 其它

Ext中ext:CheckboxSelectionModel 的checkbox有时候不会去掉选中的方法

2010-06-22 09:38 405 查看
使用ext:CheckboxSelectionModel 有个时候莫名其妙的不能清空所选中的checkbox,即使在ext:GridPanel设置了SelectionMemory="Disabled" 属性也一样,就仿照下面的选择所有写了一个清空的。

//自动判断是否全选并选中或不选中表头的checkbox
function autoCheckGridHead(){
var hd_checker = grid.getEl().select('div.x-grid3-hd-checker'); //CompositeElementLite/CompositeElement
var hd = hd_checker.first(); //呵呵,终于搞定了,这句测了好久,才找对对象;
if(hd != null){
if(grid.getSelectionModel().getSelections().length != grid.getStore().getCount()){ //没有全选的话
//清空表格头的checkBox
if(hd.hasClass('x-grid3-hd-checker-on')){
hd.removeClass('x-grid3-hd-checker-on'); //x-grid3-hd-checker-on
//grid.getSelectionModel().clearSelections();
}
}else{
if(grid.getStore().getCount() == 0){ //没有记录的话清空;
return;
}
hd.addClass('x-grid3-hd-checker-on');
grid.getSelectionModel().selectAll();
}
}
}

上面这个是网上常见的选择所有的checkbox方法,但目前有需要,就是选中之后不能自动去掉所选中的checkbox,所以做了如下的:

function ClearChecker()
{
var grid=Ext.getCmp("GridResourceList");
var hd_checker = grid.getEl().select('div.x-grid3-hd-checker'); //CompositeElementLite/CompositeElement
var hd = hd_checker.first();

if(hd != null){

hd.addClass('x-grid3-hd-checker-on');
hd.removeClass('x-grid3-hd-checker-on'); //这个是去掉上面标题中的
grid.getSelectionModel().clearSelections();//这个是清空所有的,为不选中
//grid.getSelectionModel().selectAll();这个是设置选中所有的

}

}

前台调用直接调用函数就可以了,如果要在cs中调用也简单,在你操作的方法中

ScriptManager1.ScriptManager.AddScript("ClearChecker();");

其中ScriptManager1是页面

<ext:ScriptManager ID="ScriptManager1" runat="server" AjaxMethodNamespace="ResourceAuditNamespace">
</ext:ScriptManager>

的ID;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: