snaif_lx 2015-09-10 23:38 采纳率: 80%
浏览 2579
已采纳

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条回答 默认 最新

  • 斯洛文尼亚旅游 2015-09-11 01: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条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部