1. Jqgrid可编辑表格实现字段联动,输入A字段值,自动填值B字段
2. 各字段id名
A:a_ratio
B:b_amt
1:c_vol
3. 功能:A、B之间的联动,输入A后,可以取到输入的值和其他列的值经过一系列复杂计算得到B的值,然后塞到B字段
4. 代码实现:
//字段A属性
columnModels.push({name:"a_ratio", width:140, editable:true,sortable:false,formatter:'string',editoptions: {
dataEvents:[
{
type:'change',
fn:function(e){
//获取当前输入值
var add_ratio = $(this).val();
//获取当前rowid行号,第几行
var id=$('#GridID').jqGrid('getGridParam','selrow');
//获取当前行所有列的值
var rowData = $("#GridID").jqGrid("getRowData",id);
//获取同行其他列的值
var c_vol=rowData["c_vol"];
//...可以取到1,2,3,4l列的值计算得到一个值a
var a="54";
//将计算的值赋予给字段B
jQuery('#GridID').setRowData(id, {b_amt:a});
}
}
]
}});
//字段B属性
columnModels.push({name:"b_amt", width:60, editable:false,sortable:false,formatter:'string'});
5. 最终显示效果,输入完A后自动显示B
注意:这里实际上只需要增加我们输入的字段的一个属性editoptions,里面加上了change方法,change方法里取值计算赋值B,一开始思路找jqgrid的事件发现没有类似,百度了一大圈Jqgrid联动都是onselectrow方法还都是粘贴复制一模一样,试了很久还是不行,只能另辟蹊径最终实现了