{
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,求教求教
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默认的值让选中
抱歉。很久没接触这个了,同问!
很简单,onSelect方法里把你选中的的值传到ajax,当作参数查询返回的你需要的值,可以通过data.XX获取,分别放到你需要的文本框中就可以了。
把你的这段var url = '/handler/spouseinfo.ashx?flag=getValueNMK06&t='+record.id;
放到ajax中
$.ajax({
type : 'post',
url : 'handler/spouseinfo.ashx?flag=getValueNMK06&t='+record.id,
cache : false,
dataType : 'json',
success : function(data) {
//在这里反显
},
error : function(data) {
//$.messager.alert('错误信息',‘错误’,'error');
return true;
}
});
up。。。。!!!!