private String getOnclick(ExportConf exportConf) { String oTableId = "oTable_" + table.getId(); StringBuilder params = new StringBuilder(); StringBuilder exportFuncName = new StringBuilder("ddl_dt_launch_export_"); exportFuncName.append(table.getId()); exportFuncName.append("_"); exportFuncName.append(exportConf.getFormat()); StringBuilder exportFunc = new StringBuilder("function "); exportFunc.append(exportFuncName.toString()); exportFunc.append("(){"); params.append(oTableId).append(".ajax.params()"); // HTTP GET if (exportConf.getMethod().equals(HttpMethod.GET)) { exportFunc.append("window.location=\"").append(exportConf.getUrl()); if (exportConf.getUrl().contains("?")) { exportFunc.append("&"); } else { exportFunc.append("?"); } // Parameters should be decoded because jQuery.param() uses // .serialize() which encodes the URL exportFunc .append("\" + decodeURIComponent($.param(") .append(params.toString()) .append(")).replace(/\\+/g,' ');"); } // HTTP POST/PUT/DELETE else { exportFunc .append("$.download('") .append(exportConf.getUrl()) .append("', decodeURIComponent($.param(") .append(params.toString()) .append(")).replace(/\\+/g,' '),'") .append(exportConf.getMethod()) .append("');"); } exportFunc.append("}"); appendToBeforeAll(exportFunc.toString()); return exportFuncName.append("();").toString(); }