2013-05-13 92 views
0

這是我第一次與jqGrid的工作。我已成功將數據加載到網格,但我的filterToolbar無法正常工作。這裏是我的看法的jqGrid filterToolbar不工作

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 
    Index 
</asp:Content> 

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
<title>jqGrid for ASP.NET MVC - Demo</title> 
    <!-- The jQuery UI theme that will be used by the grid -->  
    <link rel="stylesheet" type="text/css" media="screen" href="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.10.0/themes/redmond/jquery-ui.css" /> 
    <!-- The Css UI theme extension of jqGrid --> 
    <link rel="stylesheet" type="text/css" href="../../Content/themes/ui.jqgrid.css" />  
    <!-- jQuery library is a prerequisite for jqGrid --> 
    <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.9.0.min.js" type="text/javascript"></script> 
    <!-- language pack - MUST be included before the jqGrid javascript --> 
    <script type="text/javascript" src="../../Scripts/trirand/i18n/grid.locale-en.js"></script> 
    <!-- the jqGrid javascript runtime --> 
    <script type="text/javascript" src="../../Scripts/trirand/jquery.jqGrid.min.js"></script> 

    <script type="text/javascript"> 
     var myGrid = $('#list'); 
     $(function() { 
      $("#list").jqGrid({ 
       url: '/JqGridClients/DynamicGridData/', 
       datatype: 'json', 
       mtype: 'GET', 

       colNames: ['ClientID', 'Address', 'Company', 'Name'], 
       colModel: [ 
      { name: 'ClientID', index: 'ClientID', search: false, width: 60, align: 'left' }, 
      { name: 'Address', index: 'Address', search: true, sortable: true, align: 'left' }, 
      { name: 'Company', index: 'Company', search: true, align: 'left', stype: 'select' }, 
      { name: 'Name', index: 'Name', search: true, align: 'left', searchoptions: { sopt: ['eq', 'ne', 'cn']}}], 
       pager: jQuery('#pager'), 
       rowNum: 10, 
       rowList: [5, 10, 20, 50], 
       sortname: 'ClientID', 
       sortorder: "desc", 
       viewrecords: true, 
       imgpath: '/scripts/themes/coffee/images', 
       caption: 'Clients', 

      }).navGrid('#pager', { search: true, edit: false, add: false, del: false, searchtext: "Search" }); 

       $("#list").jqGrid('filterToolbar', { stringResult: true, searchOnEnter: false, defaultSearch: 'cn' }); 
     }); 


    </script> 

    <h2>Index</h2> 

<table id="list" class="scroll" cellpadding="0" cellspacing="0"></table> 
<div id="pager" class="scroll" style="text-align:center;"></div> 

</asp:Content> 
+0

具有u在控制檯得到紐約州的錯誤? – 2013-05-13 04:34:59

+0

@vishalsharma沒有錯誤在控制檯 – chamara 2013-05-13 04:41:07

+0

把navgrid作爲filtertoolbar – 2013-05-13 04:55:59

回答

0
<script type="text/javascript"> 
     var myGrid = $('#list'); 
     $(function() { 
      $("#list").jqGrid({ 
       url: '/JqGridClients/DynamicGridData/', 
       datatype: 'json', 
       mtype: 'GET', 

       colNames: ['ClientID', 'Address', 'Company', 'Name'], 
       colModel: [ 
      { name: 'ClientID', index: 'ClientID', search: false, width: 60, align: 'left' }, 
      { name: 'Address', index: 'Address', search: true, sortable: true, align: 'left' }, 
      { name: 'Company', index: 'Company', search: true, align: 'left', stype: 'select' }, 
      { name: 'Name', index: 'Name', search: true, sortable: true, align: 'left', searchoptions: { sopt: ['cn' ,'eq', 'ne']}}], 
       pager: jQuery('#pager'), 
       rowNum: 10, 
       width: '100%', 
       height: '100%', 
       rowList: [5, 10, 20, 50], 
       sortname: 'ClientID', 
       sortorder: "desc", 
       viewrecords: true, 
       imgpath: '/scripts/themes/coffee/images', 
       loadonce: true, 
       caption: 'Clients', 

      }).navGrid('#pager', { search: true, edit: false, add: false, del: false, searchtext: "Search" }); 

       $("#list").jqGrid('filterToolbar', { stringResult: true, searchOnEnter: false, defaultSearch: 'cn' }); 

       $("#list").setGridParam({data: results.rows, localReader: reader}).trigger('reloadGrid'); 
     }); 


    </script> 

我做的腳本一些變化,現在工作的罰款。

  1. 添加參數loadonce:真
  2. 改變在名稱欄中的搜索選項順序
4

您正確使用filterToolbar。你沒有任何細節就寫了「我的filterToolbar無法正常工作」。我想你只是沒有在服務器端實現過濾。

如果用戶過濾器工具條中輸入篩選新的請求將被髮送到服務器(以'/JqGridClients/DynamicGridData/')。選項filter的格式如the documentation所述。查看the answeranother one查看代碼示例。

如果網格中您需要顯示的行數不是那麼大(例如少於1000行),那麼您可以通過使用客戶端分頁和過濾來簡化您的代碼。你只需要你做以下修改:

  • 上的jqGrid的要求增加loadonce: true選項電網
  • 變更的服務器代碼,以便您返回數據的所有頁面(不包括在服務器端分頁) 。您仍然需要對數據進行排序。

,你應該額外檢查你使用的jqGrid的選項。例如

  • 使用imgpath選項,這是因爲deprecated 3.5 jqGgrid(目前的版本是4.4.5)。
  • 你需要使用gridview: true代替從而提高性能
  • 就應該更換pager: jQuery('#pager')pager: '#pager'因爲jqGrid的需要作爲jqGrid的參數。
  • 你應該減少HTML片段與<table><div>需要的jqGrid到<table id="list" ></table><div id="pager"></div>。所有其他屬性(包括class)都被棄用,並且不會在最近3年發佈的jqGrid版本中使用。