繁体   English   中英

jqgrid下拉列表传递另一列的值

[英]jqgrid dropdowns pass value of another column

我正在使用jqGrid使用JSPServlet以表格格式显示数据。

我有两个依赖的下拉列表显示。

  1. 显示状态
  2. 显示城市

以下是相关代码:

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'}
}
],

上面的代码对于依赖下拉菜单工作正常。 现在我想通过USERIDdatUrleditoptionsSTATE栏。 喜欢

dataUrl: 'MYServlet?action=getState&userid='+userid

但是我无法在dataUrl获取USERID

因此,任何建议将不胜感激。

我建议了dataUrl一些扩展,这些扩展现在是jqGrid的一部分。 它的使用postData财产editoption定义功能(参见答案 )或使用的dataUrl直接作为功能(见这里这里 )。 第一个功能包含在jqGrid 4.4.2中,但是第二个功能包含 4.5.2发布之后。 因此,我建议您使用postData作为函数。

您需要做的是将postData属性添加到editoptionsSTATE列的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM