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();
  }