2014-09-19 4 views
0

Ниже приведен мой код, я новичок в JQgrid, и я выполнил пример, указанный в вики, но для некоторых странных причин. Я не вижу никаких параметров поиска на панели навигации, Любая помощь действительно были бы оцененыПараметры поиска JQgrid, не показывающие

<script src="js/jquery-1.11.0.min.js" type="text/javascript"></script> 
     <script src="js/i18n/grid.locale-en.js" type="text/javascript"></script> 
    <script src="js/jquery.jqGrid.min.js" type="text/javascript"></script> 
    <script src="js/jquery-ui-1.10.4.custom.js" type="text/javascript"></script> 

    <script type="text/javascript"> 
    $(function() { 
     $("#list").jqGrid({ 

      url: "genxml3.php", 
      datatype: "xml", 
      mtype: "GET", 

      colNames: ["A", "T", "E"], 
      colModel: [ 

       { name: "A", Index: 'Name', width: 155 }, 
       { name: "T", width: 290 }, 
       { name: "E", width: 80, align: "right" ,sortable: false}, 

      ], 
      pager: "#pager", 
      height:"100%", 
      rowNum: 20, 
      rowList: [40, 80, 120], 
      rownumbers: true, 
      rownumWidth: 40, 
      sortname: "invid", 
      sortorder: "desc", 
      viewrecords: true, 
      gridview: true, 
      autoencode: true, 
      caption: "Digital List" 


     }) 

     }); 
    jQuery("#list").jqGrid('navGrid','#pager', {edit:false,add:false,del:false}, {}, {}, {}, {multipleSearch:true, multipleGroup:true, showQuery: true} 
     ); 

     </script> 

ответ

1

причина, мне кажется неправильным местом navGrid вызова. Curruntly вы разместили его за пределами$(function() {...}) блок. Таким образом, звонок navGrid будет сделан до сетка создана и navGrid не удалось. Чтобы устранить проблему, вам нужно переместить линию jQuery("#list").jqGrid('navGrid', ...); на одну строку выше.

Кроме того, вы должны удалить Index: 'Name' из колонки "A". Первый из JavaScript чувствителен к регистру, и есть только index и не Index. Кроме того, не рекомендуется использовать свойство index во всех случаях, когда это не требуется. Вариант sortname: "invid", вероятно, не имеет большого смысла, потому что у вас нет колонки с именем invid.

Другое замечание. Вы должны включить опцию gridview: true для повышения производительности сетки и рассмотреть возможность использования опции loadonce: true. Если вы не используете опцию loadonce: true, тогда сервер (url: "genxml3.php") должен реализовать подкачку, сортировку и фильтрацию на стороне сервера (поиск). В случае не столь большого набора данных (например, менее 1000 или 10000 строк) это может быть более эффективным, если сервер возвращает все данные (изначально отсортированные по sortname, если вы используете). jqGrid сохранит возвращенные данные во внутреннем параметре data, которые являются типичными для использования datatype: "local", а затем он изменит datatype на "local". Таким образом, jqGrid будет выполнять сортировку, подкачку и фильтрацию/поиск локально без какого-либо запроса на сервер. Обычно локальная сортировка выполняется быстро, как запросы к серверу, если количество строк не так велико.

+0

Благодарим вас за ценный отзыв, я переместил navGrid() на одну строку выше, но я все еще не вижу никаких параметров поиска. – hitek

+0

Может быть, мне не хватает библиотеки или плагина, которые я должен включить? – hitek

+0

@hitek: Больше ничего не требуется. У вас есть демо онлайн? – Oleg