0

私は inlineNav を使用しています (こちらの支援により成功しました!)。

selectステートメントで使用dataUrlすると、動作がわかりません。

グリッドが読み込まれるとき、選択オプションは読み込まれません。選択 HTML 要求は、レコードの編集または追加が押されるまで行われません。

グリッドがロードされたらすぐにロードできますか?

$("#navgrid").jqGrid({
    sortable: true,
    rownumbers: true,
    url: 'cms.dbw?action=ajaxgrid&sessionid=3d70a780-d6ec-102f-bd56-0015171f0bcc&subaction=jq&tableid=carepln',
    editurl: 'cms.dbw',
    datatype: 'json',
    mtype: 'GET',
    pager: '#navgrid_bottompager',
    rowNum: 10,
    rowList: [10,50,100],
    width: 750,
    height: '100%',
    shrinkToFit: false,
    toolbar: [false,'top'],
    sortname: 'id',
    sortorder: 'asc',
    viewrecords: true,
    gridview: true,
    altRows: false,
    toppager: true,
    caption: 'Care Plan Detail',
    colNames: ['ID','Act','Resident Code','Care Code'],
    colModel: [
        {name:'id',index:'id',width:50,align:'center',search:false,key:true,hidden:true},
        {name:'active',width:30,align:'center',editable:true,edittype:'checkbox',editoptions: {value:'Y:N'},formatoptions:{disabled:false,value:"Y:N"}},
        {name:'resid',align:'left',editable:true,width:70},
        {name:'classid',align:'left',editable:true,edittype: 'select',editoptions: { dataUrl: 'cms.dbw?action=ajaxgrid&sessionid=3d70a780-d6ec-102f-bd56-0015171f0bcc&subaction=jqsubtable&tableid=careserv&field1=classid&field2=description'} ,width:70}
    ]
}); 

{"ページ":1,"レコード":4024,"合計":403,"行":[{"id":"1","セル":["1","Y","100243", "22020"]},{"id":"2","セル":["2","Y","100220","22020"]},{"id":"3","セル" :["3","Y","100193","22020"]},{"id":"4","セル":["4","Y","100082","22020"] },{"id":"5","セル":["5","Y","100068","22020"]},{"id":"6","セル":["6 ","Y","100241","22020"]},{"id":"7","セル":["7","Y","100215","22020"]},{"id":"8","セル":["8","Y","100059","22020"]},{"id":"9", "セル":["9","Y","100240","22020"]},{"id":"10","セル":["10","Y","100009"," 22020"]}]}

dataUrl、編集が開始されるまで解決されません。編集後は表示されません。

4

2 に答える 2

0

dataUrl編集開始時のロードのデメリットは見当たりません。それどころか、私はそのような行動を利点と見なしています。まず、オプションのデータをロードしないでください。オンデマンドでデータをロードすることをお勧めします。2 番目の利点は、現在のデータを から取得できることですdataUrl。編集を開始すると、現在のデータdataUrlがロードされます。そのため、サーバー上でデータが変更される場合、行の編集ごとに異なる値を持つことができます。

一度だけデータをロードする必要がある場合は、まったく使用できませんdataUrleditoptions.valueその代わりに、 に関してset への個別の Ajax 呼び出しを行うことができますsetGridParam

于 2012-04-11T22:08:47.920 に答える
0

同じ問題があります。データに外部キーがあり、ユーザーが知らないランダムなキーではなく、グリッドにこの列のわかりやすい値を表示したいと考えています。あなたと同じように、オプションを取得するために dataUrl を使用formatter:'select'しましたが、行を編集していないときでもこれらの値を表示するために使用したいと考えています。問題は、この ajax リクエストが行の編集時にのみ発生するため、編集が発生するまで値がわからないことです。私が見つけた唯一の解決策は、グリッドを設定する前にこれらの値を手動で ajax ロードし、これらの値を使用しeditoptions: {value: ... }て他の列の 1 つに対して行ったように設定することです。これは、編集が行われる前にグリッド フォーマッタがこれらの値を知ることができる唯一の方法です。

この回答は、グリッドの前にオプションをロードする例を示していますが、そのformatter:'select'部分は省略しています -これに関するドキュメントへのリンクがあります。

于 2012-04-14T22:16:17.523 に答える