在编辑的时候jsp combobox多选setValues后为啥只能取消Q专家这一项别的不能取消

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在编辑的时候jsp combobox多选setValues后为啥只能取消Q专家这一项别的不能取消相关的知识,希望对你有一定的参考价值。

$('#permissionModule').combobox(
url:'<c:url value="/mobilePackageManage/getQXMKListMobilePackageManage.tg"/>',
valueField:'id',
textField:'text',
multiple:true,
onLoadSuccess:function()
if(('$mobilePackage.permissionModule')!='')
$('#permissionModule').combobox('setValues','$mobilePackage.permissionModule'.split(','));
else
$('#permissionModule').combobox('setValue','跟我学');


);

因为你自己加了判断,其实combobox自带的以,隔开的本身已经实现了添加取消功能

去掉下面的判断
if((\'$mobilePackage.permissionModule\')!=\'\')
$(\'#permissionModule\').combobox(\'setValues\',\'$mobilePackage.permissionModule\'.split(\',\'));


直接
if((\'$mobilePackage.permissionModule\')==\'\')
$(\'#permissionModule\').combobox(\'setValue\',\'跟我学\');
追问

我要是多选的话 那不就变成了只有‘跟我学’了么

追答

不是,$mobilePackage.permissionModule\')==\'\' 只有为空时才是‘跟我学’,其他的是你选什么就自动加什么,官方demo就是这样的

参考技术A

我今天遇到了这个问题,跟你的一样,查了半天的api什么的,最后终于发现问题了。原因是:默认设置的value里面带了空格。在你设置默认选中的时候去
一下空格就好了。用setValues 不好去空格,最好用select 然后一个一个设置。 希望遇到同样问题的菜鸟们能少走弯路

var array = documentType.split(",");
                for (j=0;j<array.length ;j++ )
                    var tempStr=trim(array[j]);
                    $("#combo_docTypes").combobox("select",tempStr);
                

easyui combobox 在datagrid中动态加载数据

场景:datagrid 中用编辑框修改数据,有一个列使用的combobox  在可编辑的时候需要动态绑定数据,这个数据是在根据其他条件可变的

思路:在每次开启编辑框的时候动态绑定数据,

datagrid开启

onClickCell: onClickCell//点击触发

onAfterEdit:onAfterEdit//编辑完单元格之后触发的事件

  
     $.extend($.fn.datagrid.methods, {  
         editCell: function (jq, param) {  
             return jq.each(function () {  
                 var opts = $(this).datagrid(‘options‘);  
                 var fields = $(this).datagrid(‘getColumnFields‘, true).concat($(this).datagrid(‘getColumnFields‘));  
                 for (var i = 0; i < fields.length; i++) {  
                     var col = $(this).datagrid(‘getColumnOption‘, fields[i]);  
                     col.editor1 = col.editor;  
                     if (fields[i] != param.field) {  
                         col.editor = null;  
                     } 
                 }  
                 $(this).datagrid(‘beginEdit‘, param.index);  
                 for (var i = 0; i < fields.length; i++) {  
                     var col = $(this).datagrid(‘getColumnOption‘, fields[i]);  
                     col.editor = col.editor1;  
                 }  
             });  
         }  
     });  

     var editIndex = undefined;  
     //判断是否编辑结束  
     function endEditing() {  
         if (editIndex == undefined) { return true }  
         if ($(‘#subDg‘).datagrid(‘validateRow‘, editIndex)) {  
             $(‘#subDg‘).datagrid(‘endEdit‘, editIndex);  
             editIndex = undefined;  
             return true;  
         } else {  
             return false;  
         }  
     }  
   //点击单元格触发的事件  
     function onClickCell(index, field) { 
         if (endEditing()) {  
             $(‘#subDg‘).datagrid(‘selectRow‘, index)  
                     .datagrid(‘editCell‘, { index: index, field: field });  
             editIndex = index;  
         }  
         var taskLevelsData =$("#taskLevels").val();    
         if(field=="taskLevel" && taskLevelsData){//下拉编辑列时触发
             var editors = $(‘#subDg‘).datagrid(‘getEditors‘, index);//取当前的编辑器
             var row = $(‘#subDg‘).datagrid(‘getRows‘)[index];
             var smEditor = editors[0];
             $(smEditor.target).combobox({  
                    onLoadSuccess: function () { 
                    },  
                    onShowPanel: function(){   //下拉展开时动态修改options  
                            //debugger
                                var data = []; 
                                $.each(taskLevelsData.split(","),function(i,e){
                                    var obj={};
                                    obj.id=e;
                                    obj.text=e;
                                    data.push(obj);
                                })

                        $(smEditor.target).combobox("loadData", data);  
                        //设置值      
                               $(smEditor.target).combobox(‘setValue‘, row.taskLevel);       //row的属性赋值  
                    }  
                });  
         }
     }  
     //编辑完单元格之后触发的事件  
     function onAfterEdit(index, row, changes) {  
               var d = {};
               d.id= row.id;
          //编辑内容进行修改数据
               if(row.hasOwnProperty(‘bidRequire‘)){
                   d.bidRequire=row.bidRequire;
               }if(row.hasOwnProperty(‘meaRequire‘)){
                   d.meaRequire=row.meaRequire;
               }if(row.hasOwnProperty(‘requireDate‘)){
                   d.requireDate=row.requireDate.split(‘ ‘)[0] ;
               }if(row.hasOwnProperty(‘quaRequire‘)){
                   d.quaRequire=row.quaRequire;
               }if(row.hasOwnProperty(‘taskLevel‘)){
                   d.taskLevel=row.taskLevel;
               }
               //console.log(d);
               //console.log(changes);
               if(JSON.stringify(changes) != "{}"){
                   //console.log("tijiao")
                   $.post(‘${pmsmanager}/pms/mtrl_plan/mtrl_plan_detail/update.do?sessionId=${(sessionId)!""}‘,d,function(data){
                   })
               }
                
     }       
     

 

以上是关于在编辑的时候jsp combobox多选setValues后为啥只能取消Q专家这一项别的不能取消的主要内容,如果未能解决你的问题,请参考以下文章

jquery easyui combobox多选时,选第一个,前面有分隔符

VB combobox怎么实现可多选下拉列表中的内容?

QML 可以多选ComboBox的实现

EasyUI combobox 多选及回显赋值

jQuery EasyUI combobox多选及赋值

easyui combobox 多选及全选 功能