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
评一波