extjs CheckboxGroup默认选中问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了extjs CheckboxGroup默认选中问题相关的知识,希望对你有一定的参考价值。
<script type="text/javascript">
Ext.onReady(function()
var port = new Ext.Viewport(
layout: 'border',
items: [chkEditDomain],
cls: "inner-viewport",
listeners:
render: function()
Ext.getCmp("itemsid0").setValue("211", true);
Ext.getCmp("itemsid0").setValue("212", true);
Ext.getCmp("itemsid0").setValue("213", true);
Ext.getCmp("itemsid0").setValue("214", true);
);
);
var chkEditDomain = new Ext.form.CheckboxGroup(
xtype: 'checkboxgroup',
fieldLabel: '测试',
name: 'chkEditDomain',
allowBlank: false,
id: 'itemsid0',
width: 200,
columns: 4,
items: [
boxLabel: 'IND', name: 'IND', id: '211', inputValue: '5' ,
boxLabel: 'CE', name: 'CE', id: '212', inputValue: '6' ,
boxLabel: 'SC', name: 'SC', id: '213', inputValue: '8' ,
boxLabel: 'FA', name: 'FA', id: '214', inputValue: '7'
]
);
</script>
为什么只有最后一个被选中,纠结!!!高手帮帮忙啊
var port = new Ext.Viewport(
layout: 'border',
items: [chkEditDomain],
cls: "inner-viewport",
listeners:
render: function()
// Ext.getCmp("itemsid0").setValue("211", true);
// Ext.getCmp("itemsid0").setValue("212", true);
// Ext.getCmp("itemsid0").setValue("213", true);
// Ext.getCmp("itemsid0").setValue("214", true);
);
);
var chkEditDomain = new Ext.form.CheckboxGroup(
xtype: 'checkboxgroup',
fieldLabel: '测试',
name: 'chkEditDomain',
allowBlank: false,
id: 'itemsid0',
width: 200,
columns: 4,
items: [
boxLabel: 'IND', name: 'IND', id: '211', inputValue: '5', checked:true ,
boxLabel: 'CE', name: 'CE', id: '212', inputValue: '6' ,checked:true,
boxLabel: 'SC', name: 'SC', id: '213', inputValue: '8' ,checked:true,
boxLabel: 'FA', name: 'FA', id: '214', inputValue: '7' ,checked:true
]
);
这样行吗?追问
直接加checked:true属性可以,但是我是根据数据库中的条件来判断是否被选中的
追答Ext.onReady(function()
var port = new Ext.Viewport(
layout: 'border',
items: [chkEditDomain],
cls: "inner-viewport",
listeners:
render: function()
Ext.getCmp("itemsid0").setValue([true, true,true,true]);
// Ext.getCmp("itemsid0").setValue("212", true);
// Ext.getCmp("itemsid0").setValue("213", true);
// Ext.getCmp("itemsid0").setValue("214", true);
);
);
var chkEditDomain = new Ext.form.CheckboxGroup(
xtype: 'checkboxgroup',
fieldLabel: '测试',
name: 'chkEditDomain',
allowBlank: false,
id: 'itemsid0',
width: 200,
columns: 4,
items: [
boxLabel: 'IND', name: 'IND', id: '211', inputValue: '5' ,
boxLabel: 'CE', name: 'CE', id: '212', inputValue: '6' ,
boxLabel: 'SC', name: 'SC', id: '213', inputValue: '8' ,
boxLabel: 'FA', name: 'FA', id: '214', inputValue: '7'
]
);
这样吧,应该OK了。
你的写法应该是每次覆盖上次的赋值,所以只有最后一个OK。个人理解。
这个也行:
Ext.getCmp("itemsid0").setValue(
'211':true,
'212':true,
'213': false,
'214': true
);
extjs gridpanel 操作行 得到选中行
extjs gridpanel 操作行 得到选中行的列
var model = grid.getSelectionModel();
model.selectAll();//选中所有行
model.selectFirstRow();//选中第一行
model.selectLastRow([flag]);//选中最后一行,flag为正的话保持当前已经选中的行数,不填则默认false
model.selectNext();//选中下一行
model.selectPrevious();//选中上一行
model.selectRange(startRow,endRow, [Boolean keepExisting] );//选中范围间的行
model.selectRow(row);//选中某一行,,,从0开始
model.selectRows(rows);//选中指定一些行,传递数组如[1,3,5],则分别选择1,3,5行
model.clearSelections();//清空所有选中
model.deselectRange( startRow, endRow );//取消从startrow到endrow的记录的选择中态
model.deselectRow(row);//取消指定行的记录
grid.getSelected().id //得到选中的行的标识
得到选中的行。
书上的P62页:
var sm=grid.getSelectionModel();
var record=sm.getSelections()[0];这个代表选择的一行,书上少了一个s。
var record=sm.getSelections()表示选中的很多行,得到的是一个数组。
精确到具体某一列的数据,, record.get("列名")。
适合Extjs 3.2
var sm=grid.getSelectionModel();
var record=sm.getSelected();
record只是一行数据。如果选择多好数据则这个不行了。
以上是关于extjs CheckboxGroup默认选中问题的主要内容,如果未能解决你的问题,请参考以下文章