簡體   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