Мне нужно экспортировать данные jqgrid в csv.
Я уже делаю это так:
if($("#bMainExcel").length == 0){
jQuery('#gMain').jqGrid('navButtonAdd','#pMain', {
id:'bMainExcel',
caption:'',
buttonicon: 'fa fa-file-excel',
title:'Excel',
onClickButton : function() {
var vTotRec = $("#gMain").jqGrid('getGridParam','reccount');
if(vTotRec==0){
alert(i18next.t('alert.grid_empty'));
return false;
};
// Prendo l'indirizzo base a cui punta la griglia
var myUrl = jQuery("#gMain").jqGrid('getGridParam', 'url');
// tolgo anche il parametro idquery se presente
myUrl=removeParam('idquery', myUrl);
// tolgo dalla stringa l'indirizzo a cui la griglia punta che non serve piu
// Va fatto DOPO il removeParam
myUrl = myUrl.replace('grid_main.php?', '');
// Prendo tutti i filtri applicati alla griglia e li sommo all'URL
// In modo da ottenere l'Url completo.
// escludo il parametro IDQUERY, anche se qui non dovrebbe apparire mai
var postData = jQuery("#gMain").jqGrid('getGridParam', 'postData');
$.each(postData, function(key, value) {
if(key != 'idquery'){
myUrl += "&"+key+"="+encodeURIComponent(value);
};
});
myUrl = "grid_main.php?idquery=3&" + myUrl;
// reindirizzo il link per salvare il file excel
location.href=myUrl;
}
});
};
, как вы видите, я снова вызываю php, передавая другой запрос, который экспортирует данные в csv. Он прекрасно работает, но он не экспортирует только видимые поля, также он не сохраняет имена столбцов в jqgrid, он просто экспортирует весь набор результатов моего php запроса (из mysql).
Поэтому я попытался использовать:
$("#gfv_gErroriVal").jqGrid('exportToCsv', options);
, но он работает только с типом данных = local. Я попытался использовать datatype = local (удалив подкачку сервера - в противном случае он экспортирует только первые 100 строк), но моя сетка содержит около 140 000 строк и возвращает ошибку, потому что она слишком большая.
Итак, у меня есть другие варианты? Кто-нибудь может помочь? спасибо!