easyui datagrid動態修改editor時動態綁定combobox的數據


需求在 datagrid 編輯框中開啟一個combobox  ,但是里面的數據需要開啟的時候才會知道,數據會根據其他因數變更

參考原文 :http://blog.csdn.net/donggua3694857/article/details/51433882

//點擊單元格觸發的事件  
     function onClickCell(index, field) {
    	 if (endEditing() && fag) {  
             $('#subDg').datagrid('selectRow', index).datagrid('editCell', { index: index, field: field });//開啟field單元格編輯  
             editIndex = index;  
         } var taskLevelsData =$("#taskLevels").val(); //數據源 如: 11,22,33,44,55, if(field=="taskLevel" && taskLevelsData){//下拉編輯列時觸發 taskLevel 為列名 var editors = $('#subDg').datagrid('getEditors', index);//取當前的編輯器 var row = $('#subDg').datagrid('getRows')[index]; var smEditor = editors[0]; $(smEditor.target).combobox({ onLoadSuccess: function () { //遠程加載時觸發 }, onShowPanel: function(){ //下拉展開時動態修改options 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的屬性賦值 } }); } }
  
   

 

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;  
         }  
     }

 

$.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;  
                 }  
             });  
         }  
     });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM