easyUI datagarid 编辑状态下的combobox动态赋值

简介: 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);
            }
        }
}
相关文章
Easyui combobox 取值赋值解答
Easyui combobox 取值赋值解答
|
6月前
|
JavaScript
EasyUi js 加载数据进下拉框combobox
EasyUi js 加载数据进下拉框combobox
Easyui datagrid 编辑结束时combobox显示value而不显示text
Easyui datagrid 编辑结束时combobox显示value而不显示text
EasyUI DataGrid 可编辑列级联操作
EasyUI DataGrid 可编辑列级联操作