1

と を使用jqGridして、データを表形式で表示するために使用していJSPますServlet

表示する依存ドロップダウンが 2 つあります。

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

上記のコードは、依存ドロップダウンに対して正常に機能しています。今、私は列USERIDdatUrl 中で渡したいです。お気に入りeditoptionsSTATE

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

しかし、私は入ることができませUSERIDdataUrl

したがって、任意の提案をいただければ幸いです。

4

1 に答える 1

1

dataUrljqGrid の一部となっているいくつかの拡張機能を提案しました。defined as functionのpostDataプロパティの使用( answerを参照) またはas function の直接の使用 ( hereおよびhereを参照) です。最初の機能は jqGrid 4.4.2 に含まれていますが、2 番目の機能は4.5.2 のリリース後に含まれています。そのため、関数として使用することをお勧めします。editoptiondataUrlpostData

あなたがする必要があるのは、フォームの列のpostDataプロパティを追加することですeditoptionsSTATE

editoptions: {
    dataUrl: "MYServlet",
    postData: function (rowid) {
        return {
            action: "getState",
            userid: $(this).jqGrid("getCell", rowid, "USERID")
        };
    }
}

columnの値USERIDが一意で、使用する場合key: true、rowid はすでに column の値と同じ値ですUSERID。その場合、上記のコードを単純化し、rowid代わりに直接使用でき$(this).jqGrid("getCell", rowid, "USERID")ます。

于 2013-06-10T11:14:28.677 に答える