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 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接