jqgrid:导出到excel按照jqgridtable排序

Jqgrid: Export to excel sorting according to jqgrid table

我在我的 jqgrid 中添加了按降序加载内容。但是(使用 OpenXML)导出后,我的数据没有按降序排列。

谁能帮忙解决一下?

我在加载 jqgrid 时添加了 sortname:'Cust_ID' sortorder: "desc",但是这个提到的列 Cust_ID 隐藏在 jqgrid 中。现在我想对我的 jqgrid

进行排序

下面是我导出到 excel 函数。

`public string ExportReport(int cp, int noOfOrders)
    {
    string conndb=ConfigurationManager.AppSettings["Db"];
    const string Ids ="0";
    Company pList = _items.GetByCID(cp);
    IQueryable<Product> List

    List=product.SQLDatabase().GetListByCompandIds(cp, Convert.ToInt32(noOfOrders), conndb, Ids)

    XLWorkbook workbook = new XLWorkbook(XLEventTracking.Disabled);
    IXLWorksheet worksheet = workbook.Worksheets.Add("ListReport");

        worksheet.Cell(1, 1).Value = "Date";
        worksheet.Cell(1, 2).Value = "First Name";
        worksheet.Cell(1, 3).Value = "Last Name";
        worksheet.Cell(1, 4).Value = "Email";
        worksheet.Cell(1, 5).Value = "Department";
        worksheet.Cell(1, 6).Value = "Supervisor";

        int i = 2;
        foreach (EList ExpReport in List)
        {
            worksheet.Cell(i, 1).SetValue(ExpReport.Date);
            worksheet.Cell(i, 2).SetValue(ExpReport.FirstName);  
            worksheet.Cell(i, 3).SetValue(ExpReport.LastName);
            worksheet.Cell(i, 4).SetValue(ExpReport.Email);
            worksheet.Cell(i, 5).SetValue(ExpReport.Department);
            worksheet.Cell(i, 6).SetValue(ExpReport.Supervisor);
            ++i;
        }  

        worksheet.Columns().AdjustToContents();
        Session["Workbook"] = workbook;
        string filename;
        filename = "Product-Report";
        return filename;
}`

无法直接从代码隐藏访问 jqGrid 中的客户端排序数据。

或者,您可以从JavaScript中的jqGrid中获取当前排序的列名,将它存储在一个可以从代码隐藏访问的隐藏字段(或服务器控件)中,然后将其应用于数据库查询在您的 ExcelExport 函数中。
要使用隐藏变量,您可以遵循 Persist-JavaScript-variables-and-objects-across-PostBack-in-ASPNet.aspx

在另一种方法中,您可以在 JavaScript 中从 jqGrid 获取排序的列名称,然后使用 AJAX 调用将其传递给代码隐藏的 WebMethod(或 Web API /脚本服务/Web 服务,例如 asmx、ashx),它通过按要求的顺序对数据进行排序将数据导出到 excel。
ajax post 可以参考 using-jquery-to-make-a-post-how-to-properly-supply-data-parameter For AJAX call and WebMethod usage you may follow Send-Pass-multiple-parameters-to-WebMethod-in-jQuery-AJAX-POST-in-ASPNet

如果您需要任何参考来获取排序列名,您可以参考how-to-get-the-current-sort-column-in-a-jqgrid-after-user-clicks-a-column-header