2013-07-10 35 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

如果我理解你正確的查詢,試試這個...

Store中StartDateEndDate一個Session Variables,那麼你可以檢查對於您要發送grid dataSession Variables,並根據Session Variables,然後您可以建立您的查詢。你還需要檢查null,如果Session Variablesnull那麼你可以返回結果沒有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

相關問題