[英]jqgrid dropdowns pass value of another column
我正在使用jqGrid
使用JSP
和Servlet
以表格格式显示数据。
我有两个依赖的下拉列表显示。
以下是相关代码:
colNames:['User ID', 'Name','State','City'],
colModel:[
{name:'USERID',index:'USERID',....},
{name:'NAME',index:'NAME',....},
{
name:'STATE',
index:'STATE',
width:125,
sortable:true,
edittype:"select",
editoptions: {
maxlength: 15,
dataUrl: 'MYServlet?action=getState',
dataEvents :[{
type: 'change',
fn: function(e) {
var thisval = $(e.target).val();
$.post('MyServlet?action=getCity='+thisval,
function(data){
var res = $(data).html();
$("#STATE").html(res);
});
}
}]
}
},
{
name:'CITY',
index:'CITY',
width:125,
sortable:true,
editable:true,
edittype:"select",
editoptions:{maxlength: 50 , value: 'Select:Select'}
}
],
上面的代码对于依赖下拉菜单工作正常。 现在我想通过USERID
与datUrl
在editoptions
的STATE
栏。 喜欢
dataUrl: 'MYServlet?action=getState&userid='+userid
但是我无法在dataUrl
获取USERID
。
因此,任何建议将不胜感激。
我建议了dataUrl
一些扩展,这些扩展现在是jqGrid的一部分。 它的使用postData
财产editoption
定义功能(参见答案 )或使用的dataUrl
直接作为功能(见这里和这里 )。 第一个功能包含在jqGrid 4.4.2中,但是第二个功能包含在 4.5.2发布之后。 因此,我建议您使用postData
作为函数。
您需要做的是将postData
属性添加到editoptions
中STATE
列的editoptions
editoptions: {
dataUrl: "MYServlet",
postData: function (rowid) {
return {
action: "getState",
userid: $(this).jqGrid("getCell", rowid, "USERID")
};
}
}
如果USERID
列的值是唯一的,并且您使用key: true
则rowid已经与USERID
列的值相同。 在这种情况下,您可以简化上面的代码并直接使用rowid
代替$(this).jqGrid("getCell", rowid, "USERID")
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.