2015-09-22 4 views
0

Я добавил в свой jqgrid для загрузки контента в порядке убывания. Но (используя OpenXML) после экспорта, мои данные не в порядке убывания.Jqgrid: Экспорт в excel сортировка по таблице jqgrid

Может кто поможет найти решение?

Я добавил sortname:'Cust_ID' sortorder: "desc" под загрузкой jqgrid, но этот упомянутый столбец 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; 
}` 

ответ

0

Соотношение данных на стороне клиента в jqGrid НЕ МОЖЕТ быть обращено непосредственно из кода позади.

В качестве альтернативы вы можете получить имя отсортированного столбца из jqGrid в JavaScript, сохранить его в скрытом поле (или сервере), к которому можно получить доступ из кода позади, а затем применить его к запросу базы данных в своей функции ExcelExport.
Для использования скрытой переменной, вы можете следовать Persist-JavaScript-variables-and-objects-across-PostBack-in-ASPNet.aspx

В еще одном подходе вы можете получить отсортированный имя столбца из jqGrid в JavaScript, а затем использовать AJAX вызов передать его в WebMethod в коде позади (или Web API/Сценарий службы/Web-сервис, такой как asmx, ashx), который экспортирует данные в Excel, сортируя данные в требуемом порядке.
Для создания Ajax пост вы можете обратиться к using-jquery-to-make-a-post-how-to-properly-supply-data-parameter Для AJAX вызова и использования WebMethod вы можете следовать 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

Смежные вопросы