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);
}
}
}
easyUI datagarid 編輯狀態下的combobox動態賦值
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.