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
我在我的 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