snaif_lx 2015-09-11 07:38 采纳率: 80%
浏览 2578
已采纳

easyui datagrid combobox联动的问题

        {
            field: 'NMJ04', title: '夫妇姓名', width: 100, sortable: true,
            editor: {type: 'combobox', options: {
                required: true,
                url: '/handler/familyinfo.ashx?flag=treeClubNet&t=4',
                dataType: 'json',
                parentField: 'pid',
                textFiled: 'text',
                valueField: 'id',
                method: 'get',
                lines: true,
                editable: false,
                panelHeight: 130,
                onSelect: function (record) { 
                    var row = $('#dd').datagrid('getSelected');
                    var rowIndex = $('#dd').datagrid('getRowIndex',row);//获取行号
                    var target = $('#dd').datagrid('getEditor', {'index':rowIndex,'field':'NMJ05'});//.target;
                    target.combobox('clear'); //清除原来的数据   
                    var url = '/handler/spouseinfo.ashx?flag=getValueNMK06&t='+record.id;
                    target.combobox('reload', url);//联动下拉列表重载
                    //这里还需要设置一个textbox的值,NMJ06,怎么办?
                },
                panelMaxWidth: 200
            }

            }
        },

NMJ04是姓名,选择了之后自动提出NMJ05(性别)和NMJ06,身份证号码
新增行和编辑行的时候怎么操作啊?
我新增时row的值直接是null,求教求教

  • 写回答

5条回答 默认 最新

  • Go 旅城通票 2015-09-11 09:11
    关注
                     onSelect: function (record) { 
                        var row = $('#dd').datagrid('getSelected');
                        var rowIndex = $('#dd').datagrid('getRowIndex', row);//获取行号
                        //注意这里:获取到的编辑器是个json对象,不是jquery包装的dom对象或者dom对象
                        var target = $($('#dd').datagrid('getEditor', { 'index': rowIndex, 'field': 'NMJ05' }).target);//要转为jquery包装的对象,要不下面那句会报错
                        target.combobox('clear'); //清除原来的数据   
                        var url = '/handler/spouseinfo.ashx?flag=getValueNMK06&t='+record.id;
                        target.combobox('reload', url);//联动下拉列表重载
                        $.ajax({
                            url: '获取NMJ06值的url地址', type: 'POST', data: { id: record.id }, success: function (d) {
                                $($('#dd').datagrid('getEditor', { 'index': rowIndex, 'field': 'NMJ06' }).target).val(d);
                            },
                            error: function (xhr) {
                                alert('动态页有问题。。\n'+xhr.responseText)
                            }
                        });
                    }
    

    编辑时我建议是统一用一个ajax发送请求后,获取所有返回的数据,在success中统一设置,而不是单独设置。

    “我新增时row的值直接是null”,这个不太明白什么意思。。新增的话你的record没有记录,所以你选中新增记录需要动态获取的值肯定是获取不到的,这时需要手动填写才行,或者给combobox默认的值让选中

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧