2

この方法を使用してデータをエクスポートします。

$('#list').jqGrid('getRowData')

しかし今は、getRowData が表示されている列のデータのみを返すようにしたいと考えています。

次のように列を非表示にします。

$("#list").jqGrid('hideCol',columnName)

jqGrid はこれをすぐにサポートしますか? それとも、何かカスタムを構築する必要がありますか?

4

1 に答える 1

2

メソッドgetRowDataには、可視データのみをエクスポートするオプションがありません。したがって、データが必要な場合は、2 つの実装方法を提案できます。

  1. を使用してすべてのデータを取得しgetRowData、結果のデータのすべての項目から不要なプロパティを削除できます。この呼び出し$('#list').jqGrid('getGridParam', 'colModel')は、グリッドの列の配列を取得します。colModel配列のすべてのアイテムにはhiddenプロパティが含まれています。hiddenプロパティがの場合true、対応する列は非表示になり、nameによって返される配列のすべてのアイテムからアイテムのプロパティを削除できますgetRowData
  2. getRowData可視データのみをエクスポートする独自の変更を定義できます。これを行うには、ソース コードのコピーを作成しgetRowData(ここを参照)、次の行を変更する必要があります。
if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {

if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && !$t.p.colModel[i].hidden) {

結果のメソッドは、必要なことを行います。

回答で、 jqGrid に新しいメソッドを追加する方法について説明しました。したがって、コードは次のようになります

$.jgrid.extend({
    getVisibleRowData: function(rowid) {
        // here can be the copy of the code of getRowData 
        // starting with the line
        //    var res = {}, resall, getall=false, len, j=0;
        // see https://github.com/tonytomov/jqGrid/blob/v4.5.2/js/grid.base.js#L3027-L3061
        // you need just make the described above
        // modification of one line of the code
    }
});

名前で新しいメソッドを使用できます: $('#list').jqGrid('getVisibleRowData')

于 2013-09-02T13:49:13.357 に答える