easyUI datagarid 編輯狀態下的combobox動態賦值

nonNetStorage.drugVarGrid0 = $('#medicalGrid0').datagrid({ url : '', idField : 'categoryid', fitColumns :true, rownumbers:true, nowrap:false, checkOnSelect : false, rowStyler:function(index,row) { return 'background-color:#fff;color:black'; }, height : document.body.clientHeight-223, columns:[[ {field:'drugName',title:'名稱',width:'20%'}, {field:'manufactorId',title:'生產廠商id',width:'20%',hidden:true, editor : {type : 'textbox', options:{}}, }, { field : 'manufacturerName', title : '生產廠商名稱', width : '20%', editor:{ type:'combobox', width:'80px', options:{ valueField: 'manufactorName', textField: 'manufactorName', editable : false, panelHeight : '81', required:true, onSelect:function(record) { //根據選擇哪個,然後將id設置到 manufactorId 列裏面。 var ed = nonNetStorage.drugVarGrid0.datagrid('getEditor', {index:editIndex,field:'manufactorId'}); $(ed.target).textbox('setValue',record.manufactorId); } } } } ]], onClickCell : function(index,field,value) { // 點擊一行,動態獲取下拉框值,然後將數據塞入下拉框 onClickRow(index,nonNetStorage.drugVarGrid0); } }); // 這裏跟你說個點,下拉框最好用兩個編輯列,一個隱藏, // 一個用來顯示下拉字段。如上兩個列: // 生產廠商id // 生產廠商名稱 // 之所以這麼做,是因爲你在點擊保存的時候,下拉框裏面的漢字保存過程會變成id // 所以顯得不好看。 function onClickRow(index,datagrid){ //這裏代碼就是重點,網格加載好一行一行數據以後,當你點擊某一行 //他就傳進editIndex if (editIndex != index){ if (endEditing(datagrid)){ //判斷上一行是否把必填填寫完畢。 datagrid.datagrid('selectRow', index).datagrid('beginEdit', index); //生產企業要根據id獲取對應生產企業 var rowDatas = datagrid.datagrid('getRows'); //獲取網格全部數據 var ed = datagrid.datagrid('getEditor', {index:index,field:'manufacturerName'}); //加上面if判斷,結果回來的時候,看不到原先的值,所以只能點擊一次請求一次後臺 $.post("drugVarietyInfoAction/queryDrugManufactor?categoryid=" + rowDatas[index].categoryid, [], function(data) { $(ed.target).combobox('loadData',data); }, 'json'); editIndex = index; } else { //上一行必填沒填寫完,強制讓其填寫。 datagrid.datagrid('selectRow', editIndex); } } }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章