//javascript
function ejGridExport(gridObj, itemId, controller, extParm) {
//funzione standard per esportazione dati selezionati dai pulsanti sulla toolbar della grid standard
// gridObj -> oggetto ejGrid
// itemId -> Id del pulsante premuto
// controller -> controller da invocare x la action Export
// extParm -> eventuali extra parametri
var url;
var typeExport;
if (itemId.indexOf("_excelExport") != -1) typeExport = "xlsx";
if (itemId.indexOf("_pdfExport") != -1) typeExport = "pdf";
if (typeExport) {
$.extend(extParm, { typeExport: typeExport });
url = Router.action(controller, 'Export', extParm );
ejGridDoExport(gridObj, url);
}
}
function ejGridDoExport(gridObj, url)
{
//funzione per l'esportazione dati di una ejGrid
// gridObj -> oggetto ejGrid
// url -> url corrispondente alla action da eseguire per l'esportazione
waitingDialog.show('Preparazione dati in corso');
//passa il filtro al metodo di esportazione attraverso il modelGrid
gridObj.model["where"] = $('form').serialize();
//necessario altrimenti se si fanno 2 esportazioni consecutive da errore (perchè ??)
var model = $.extend(true, {}, gridObj.model);
//necessario per localizzare correttamente l'esportazione (per visualizzare € al posto di $ )
var tempObj = {}
$.extend(tempObj, ej.Grid.Locale["en-US"], ej.Grid.Locale[model.locale]);
var temp = tempObj.GroupCaptionFormat;
var split1 = temp.indexOf("{{if");
var split2 = temp.indexOf(" {{else}}");
var grpText = temp.slice(split1, split2).replace("{{if count == 1 }}", "");
var localeProp = { EmptyRecord: tempObj.EmptyRecord, GroupCaptionFormat: temp.slice(0, split1), GroupText: grpText, True: tempObj.True, False: tempObj.False };
model.locale = model.locale.concat(JSON.stringify(localeProp));
//----- esportazione proprty locale ------
//rimuove le property da ignorare in esportazione
if (gridObj.ignoreOnExport) {
for (var i = 0; i < gridObj.ignoreOnExport.length; i++)
delete model[gridObj.ignoreOnExport[i]];
}
$.ajax({
type: "POST",
url: url,
data: { GridModel: JSON.stringify(model) },//pass the grid model
dataType: "json",
success: function (data) {
waitingDialog.hide();
//get the file name for download
if (data.fileName != "") {
//use window.location.rel='nofollow' href for redirect to download action for download the file
window.location.rel='nofollow' href = Router.action('Base','Download')+"?file="+data.fileName+"&nameOut="+data.nameOut;
}
}
,
error: function (Result) {
alert("Error");
waitingDialog.hide();
}
});
}