easyui 中combogrid 实现多选,反选效果

 

实现EasyUI Combogrid组件的多选和反选效果

1.html 代码

<input id="roadClass"  name="road" />

<div id="Toolbutton" style="padding: 5px;">
<label class="mr-10" id="allChoose">全选</label>
<label id="unChoose">反选</label>
</div>

 

2.js代码

// 渠道来源
$('#roadClass').combogrid({
multiple: true, //设置允许多选
panelWidth:150,
panelHeight:300,
idField:'id',
textField:'text',
data:road, //调用json数据
toolbar:'#Toolbutton',
showHeader:false,  //隐藏标头
checkOnSelect:true,
columns:[[
{
field: 'id',
title: 'Toolbutton',
align:'center',
checkbox:true
},{
field: 'text',
title: '选择',
width:120
}
]]
});
$('#roadClass').next('span').eq(0).children('input').attr('placeholder','所有');
var flag=false; //设置全选的开关
$('#allChoose').click(function(){
$(this).toggleClass('fontRed fb pointer');  //切换类,这块设置的是全选点击的样式
if(flag==true){
$('#roadClass').combogrid('grid').datagrid('checkAll');
flag=false;
}else{
$('#roadClass').combogrid('grid').datagrid('uncheckAll');
flag=true;
}

});

$('#unChoose').click(function(){
var nodes=$('#roadClass').combogrid('grid').datagrid('getChecked'); //注意 combogrid中利用datagrid中方法的选取方式
var arr=[];
for(var i=0;i<nodes.length;i++){
var index=$('#roadClass').combogrid('grid').datagrid('getRowIndex',nodes[i]);
arr.push(index);
}
$('#roadClass').combogrid('grid').datagrid('checkAll');
for(var j=0;j<arr.length;j++){
$('#roadClass').combogrid('grid').datagrid('uncheckRow',arr[j]);
}
});

css代码:

.pointer{cursor: pointer;}

.fb{font-weight: bold;}

.fontRed{ color: red;}

json数据:

var road=[
{"id":"1","text":"1"},
{"id":"2","text":"2"},
 

注意点:

1.一般情况下我们设置datagrid很少隐藏列标头, 设置 showHeader:false,可以隐藏标头

2.在任何未选中的情况下设置默认显示‘’所有‘’  $('#roadClass').next('span').eq(0).children('input').attr('placeholder','所有');  

3.combogrid情况下,利用datagrid中的方法: $('#roadClass').combogrid('grid').datagrid('方法'); 

转载于:https://www.cnblogs.com/wenyan/p/9367432.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
easyui combobox下拉框默认是单的,如果要实现,需要做以下修改: 1. 在combobox的options添加multiple:true,表示启用多模式。 2. 在combobox的options添加onSelect和onUnselect两个事件,用于在择和取消择时更新的值。 3. 在combobox的panel添加checkbox或者复框,用于择多个项。 以下是实现的示例代码: HTML代码: ``` <input id="cc" class="easyui-combobox" style="width:200px;"> ``` JavaScript代码: ``` $('#cc').combobox({ url: 'get_data.php', valueField: 'id', textField: 'text', multiple: true, panelHeight: 'auto', onSelect: function(record){ var value = $(this).combobox('getValues'); value.push(record.id); $(this).combobox('setValues', value); }, onUnselect: function(record){ var value = $(this).combobox('getValues'); var index = value.indexOf(record.id); if (index >= 0){ value.splice(index, 1); } $(this).combobox('setValues', value); }, onLoadSuccess: function(){ var data = $(this).combobox('getData'); var value = $(this).combobox('getValues'); var panel = $(this).combobox('panel'); panel.find('.combo-panel-checkbox').remove(); $.each(data, function(index, item){ var checkbox = $('<input type="checkbox" class="combo-panel-checkbox">').val(item.id); if (value.indexOf(item.id) >= 0){ checkbox.prop('checked', true); } checkbox.insertBefore(panel.find('.combo-panel-list')); }); }, onShowPanel: function(){ var data = $(this).combobox('getData'); var value = $(this).combobox('getValues'); var panel = $(this).combobox('panel'); panel.find('.combo-panel-checkbox').prop('checked', false); $.each(data, function(index, item){ if (value.indexOf(item.id) >= 0){ panel.find('.combo-panel-checkbox[value="'+item.id+'"]').prop('checked', true); } }); } }); ``` 注:示例代码的get_data.php是一个返回JSON格式数据的接口,可以根据实际情况修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值