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

editor:{type:'combobox',options:{editor:{type:'combobox',options:{valueField:"categor... editor: {
type: 'combobox',
options: {
editor: {
type: 'combobox',
options: {
valueField: "categoryid'",
textField: "categoryname",
panelHeight: 'auto',
required:true,
url:'selectSmall?categoryid=' + 'categoryid' ,
}
}
看上面,我想知道问号部分的参数值怎么根据 当前行 的 categoryid 获取

又或者 下面 jqData有数据,而且是json,但显示是空白,浏览器里面看全是undefined
var ed = $('#showcourseinfo').datagrid( 'getEditor',{index : rowIndex, field : 'categoryid' } );
$.ajax({ url: 'selectSmall', type : 'POST', async : false,data: { categoryid: rowData.categoryid },success: function (data){ jqData = JSON.stringify(data);alert(jqData);$(ed.target).combobox( 'loadData' , jqData); }
});
求大神解决,分数只有这么多了
展开
 我来答
超级无敌宇宙大帅锅
2018-03-14 · TA获得超过144个赞
知道小有建树答主
回答量:133
采纳率:100%
帮助的人:107万
展开全部
当你网格加载完全部数据以后,你肯定要点击某一行,然后根据某一行的categoryid  传给后台请求回数据塞到下拉框里面。

所以你要在onClickRow里面写个函数:

 //网格申明方式
 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);
            }
        }
}

上面代码大体跟你说下思路:

1.点击某一行,传入某一行index。

2.获取网格全部数据:var rowDatas = datagrid.datagrid('getRows');

3.根据当前行,获取当前行的id。rowDatas[index].categoryid

4.请求后台,得到数据塞入combobox里面。

以上个人以往项目代码以及经验见解,代码临时改造,自己再根据此思路做。如果哪里错误就不用跟我说,我懒得知道。这类东西自己动动脑子,久了就知道。我还有可编辑网格二级联动的你一块参考吧:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式