2013-07-10 2 views
0

У меня есть динамическая кнопка с названием отчетов, каждый раз, когда пользователь нажимает кнопку, он отображает поля поиска (дата начала, дата окончания), которая применима ко всем отчетам, всем отчетам иметь свою другую страницу для отображения со своей сеткой, и теперь, как я могу передать параметры и открыть соответствующую страницу отчета и загрузить jqgrid. Я был популярен с этими параметрами передачи на странице «OnlineSales», а затем загружал сетку. Заранее благодарим за помощь!Как передать параметр jqgrid с другой страницы

После того, как я нажму кнопку поиска, будет синтаксисом для вызова страницы OnlineSales и передачи параметров, а затем отображения данных в сетке.

$('#SearchButton').click(function() { 
      var _StartDate = $("#StartDate").val(); 
      var _EndDate = $("#EndDate").val(); 
}); 

OnlineSales вызовов просмотра с параметрами

@{ 
    ViewBag.Title = "OnlineSales"; 
} 

@*GRID*@ 
    <div id="table" class="table"> 
     <table id="List" class="scroll" cellpadding="0" cellspacing="0"></table> 
     <div id="Pager" class="scroll" style="text-align:center;"></div> 
    </div> 
@*GRID*@ 

<script type="text/javascript"> 
jQuery(document).ready(function() { 

     jQuery("#List").jqGrid({ 
      url: 'local', 
      postData: { start_date: '', end_date: ''}, 
      datatype: "json", 
      mtype: 'GET', 
      colNames: [ 
        'First Name', 
        'Middle Name', 
        'Last Name', 
        'Email', 
        'Mobile Number'], 
      colModel: [ 
        { name: 'FirstName', index: 'FirstName', width: 200, align: 'left' }, 
        { name: 'MiddleName', index: 'MiddleName', width: 200, align: 'left' }, 
        { name: 'LastName', index: 'LastName', width: 150, align: 'left' }, 
        { name: 'Email', index: 'Email', width: 150, align: 'left' }, 
        { name: 'MobileNumber', index: 'MobileNumber', width: 80, align: 'left' }], 
      pager: jQuery('#Pager'), 
      rowNum: 10, 
      rowList: [5, 10, 20, 50, 100], 
      sortname: 'FirstName', 
      width: '1005', 
      sortorder: "asc", 
      sorttype: 'int', 
      viewrecords: true, 
      height: 'auto', 
      shrinkToFit: false, 
      cache: false, 
      caption: 'Online Sales' 
     }); 
     jQuery("#List").jqGrid('navGrid', '#Pager', { edit: false, add: false, del: false, search: false, refresh: true }); 

    }); 
</script> 

мой контроллер

public ActionResult OnlineSales(string sidx, string sord, int page, int rows, DateTime start_date, DateTime end_date) 
     { 
      _DashboardDataAccess = new DashboardDataAccess(0); 
      List<OnlineSales> _OnlineSales = _DashboardDataAccess.OnlineSales(start_date, end_date); 

      var result = _OnlineSales.AsQueryable().AsEnumerable<OnlineSales>(); 

      int count = result.Count(); 
      result = result.Skip((page - 1) * rows).Take(rows); 
      int pagecount = (count % rows) == 0 ? (count/rows) : (count/rows) + 1; 

      var ReportList = (from r in result 
           select new 
           { 
            cell = new string[] { 
            r.FirstName, 
            r.MiddleName, 
            r.LastName, 
            r.Email, 
            r.MobileNumber 
            } 
           }); 
      var jsonData = new 
      { 
       total = pagecount, 
       page = page, 
       records = count, 
       rows = ReportList.ToArray() 
      }; 

      return Json(jsonData, JsonRequestBehavior.AllowGet); 

     } 

ответ

0

Если я понимаю, вы запрашиваете правильно, попробуйте это ...

StartDate Хранить и EndDate в a Session Variables, то вы можете проверить для Session Variables, где вы отправляете grid data, и согласно Session Variables, вы можете построить свой запрос. Вам нужно будет также проверить наличие null, и если Session Variables являются null, тогда вы можете вернуть результат без Search Parameters.

А затем просто перейдите на страницу, где находится ваш grid для выбранного отчета. Затем сетка будет загружать данные в соответствии с параметрами поиска (из сеанса).

Edit1

Другой способ:

Определить два скрытых поля в HTML:

<input type="hidden" name="hiddenStartDate" value=""> 
<input type="hidden" name="hiddenEndDate" value=""> 

Затем установите значение скрытых полей в функции:

$('#SearchButton').click(function() { 
    $('#hiddenStartDate').val($("#StartDate").val()); 
    $('#hiddenEndDate').val($("#EndDate").val()); 
    //Submit the form where you are accepting the request for grid for building query and sending data 
    //Access values of hidden fields 
}); 
+0

Спасибо вы, но я не могу отобразить страницу OnlineSales с данные – naru

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