2017-02-13 18 views
2

私のアプリケーションでJQXGridを使用しました。初期ロードでは、データはサーバーから取得され、dataAdapterにロードされ、そのdataAdapterはグリッドのソースとして使用されます。私がグリッド内の任意の列をフィルタリングするとき、私はそれらのフィルタリングされたデータだけをdataAdapterに持つ必要があります。誰も私を助けてくださいでしたか?どんな助けもありがとうございます。JQXGridのdataAdapterでフィルタリングされたデータを取得する

function loadGrid(data, ref, undo) { 
//debugger; 
try { 
var source = 
{ 
datatype: “json”, 
datafields: 
[ 
{ name: 'ProductionResource', type: 'string' }, 
{ name: 'Series', type: 'string' }, 
{ name: 'ItemStatus', type: 'string' }, 
{ name: 'FutureStatus', type: 'string' }, 
{ name: 'Abc1Code', type: 'string' }, 
{ name: 'ItemNumber', type: 'string' }, 
{ name: 'FirmDemands', type: 'number' }, 
{ name: 'NetForecast', type: 'number' }, 
{ name: 'PromotionalLift', type: 'number' }, 
{ name: 'TotalReceipts', type: 'number' }, 
{ name: 'ItemQuantity', type: 'number' }, 
], 
localdata: data 
}; 
var dataAdapter = new $.jqx.dataAdapter(source); 
$(“#mainData”).jqxGrid(
{ 
width: ’99.5%’, 
pageable: false, 
height: ’100%’, 
rowsheight: 30, 
altrows: true, 
source: dataAdapter, 
groupable: true, 
groups: ['Series'], 
showgroupsheader: false, 
groupsrenderer: function (defaultText, group, state, params) { 
//return “<div style=’margin: 5px;’>” + group + “</div>”; 
return “<div style=’margin: 5px;’>” + ” + “</div>”; 
}, 
groupsexpandedbydefault: true, 
sortable: false, 
filterable: true, 
//filtermode: ‘excel’, 
columnsresize: true, 
columnsreorder: true, 
editable: true, 
selectionmode: ‘multiplecellsadvanced’, 
//autoshowfiltericon: false, 
showfilterrow: false, 
columnmenuopening: function (menu, datafield, height) { 
var column = $(“#mainData”).jqxGrid(‘getcolumn’, datafield); 
if (column.filtertype === “custom”) { 
menu.height(1000); 
setTimeout(function() { 
menu.find(‘input’).focus(); 
}, 25); 
} 
else menu.height(height); 
}, 
columns: [ 
{ text: ‘Production Resource’, datafield: ‘ProductionResource’, width: ’8.5%’, editable: false, groupable: false }, 
{ text: ‘Series’, datafield: ‘Series’, width: ’8.5%’, editable: false, groupable: true }, 
{ text: ‘Item Status’, datafield: ‘ItemStatus’, width: ’8.5%’, editable: false, groupable: false }, 
{ text: ‘Future Status’, datafield: ‘FutureStatus’, width: ’6%’, editable: false, groupable: false }, 
{ text: ‘ABC 1 (Tiers)’, datafield: ‘Abc1Code’, width: ’5%’, editable: false, groupable: false }, 
{ text: ‘Item #’, datafield: ‘ItemNumber’, width: ’8.5%’, editable: false, groupable: false }, 
{ text: ‘Firm Demands’, datafield: ‘FirmDemands’, width: ’6%’, editable: false, groupable: false }, 
{ text: ‘Net Forecast’, datafield: ‘NetForecast’, width: ’6%’, editable: false, groupable: false }, 
{ text: ‘Promotional Lift Qty’, datafield: ‘PromotionalLift’, width: ’8%’, editable: false, groupable: false }, 
{ text: ‘Total Receipts’, datafield: ‘TotalReceipts’, width: ’6.5%’, editable: false, groupable: false }, 
} catch (e) { 
alert(e.message); 
} 

答えて

0

次のコードを使用して、dataAdapterでフィルタされたデータを取得できます。

var rows = $("#mainData").jqxGrid('getrows'); 
var dataAdapter = new $.jqx.dataAdapter(source); 
dataAdapter.records = rows; 
関連する問題