grid中可以通过设置multiselect属性实现多选和全选/全取消
list中没有这样的属性要实现多选需要自己在行中放checkbox
要实现全选/全取消需要在list外放一个checkbox,通过这个checkbox的选择和取消选择控制list中所有行的checkbox都选择或都取消选择
具体实现如下:
1.data中定义一列如:checkCol
2.在list中添加checkbox设置bind-ref为checkCol
3.设置checkCol的checkedValue为1,uncheckedValue为0
4.在list外面放一个checkbox,在这个checkbox的onChange事件中判断是选择或取消,遍历data控制checkCol的值为1或0
Model.prototype.checkbox1Change = function(event) {
var data = this.comp("data1");
if (event.checked) {
data.each(function(param) {
param.row.val("checkCol", "1");
});
} else {
data.each(function(param) {
param.row.val("checkCol", "0");
});
}
};
如果要获取多选的行可以如下:
Model.prototype.button1Click = function(event){
var data = this.comp("data1");
var rows = [];
data.each(function(options) {
if (data.getValue("checkCol", options.row) === '1') {
rows.push(options.row);
}
});
};
本案例的具体资源如下:
listCheck
评一波