2013-07-25 4 views
2

У меня есть dgrid, и я использую JsonRest для получения данных со стороны сервера. Я нажал кнопку, чтобы отфильтровать данные. Вот HTML код:Иногда dojo dgrid не отображает данные правильно

<div data-dojo-type="dijit/TitlePane" title="<b>查询</b>"> 
<div class="row-fluid"> 
    <div class="span12"> 
     <div class="row-fluid"> 
      <div class="span10 offset1"> 
       <table> 
        <tr> 
         <td>批号:</td> 
         <td><input id="simple_store_dgrid_search_batch_no" 
          style="width: 120px; height: 20px" 
          data-dojo-type="dijit/form/TextBox" /></td> 
        </tr> 
       </table> 
      </div> 
     </div> 
     <div class="row-fluid"> 
      <div class="span6 offset6"> 
       <button type="button" id="simple_store_dgrid_clear_button">清除</button> 
       <button type="button" id="simple_store_dgrid_search_button">查询</button> 
      </div> 
     </div> 
    </div> 
</div> 
</div> 
<div id="simple_store_dgrid_table_toolbar"></div> 
<div id="simple_store_dgrid_table"></div> 

код расслоение плотной:

require([ "dgrid/OnDemandGrid", "dgrid/Selection", "dgrid/Keyboard", "dojo/_base/declare", 
    "dojo/store/JsonRest", "dojo/store/Observable", "dgrid/extensions/Pagination", 
    "dijit/Toolbar", "dijit/form/Button", 'dojo/query', "dijit/registry", "dojo/domReady!" ], 
    function(Grid, Selection, Keyboard, declare, JsonRest, Observable, Pagination, Toolbar, 
      Button, query, registry) { 

     **var jsonRest = JsonRest({ 
      target : "../rest/dGrid/", 
      idProperty : "batchId" 
     }); 
     var store = Observable(jsonRest);** 

     var columns = [ { 
      label : '批号', 
      field : 'batchId', 
      sortable : true 
     }, { 
      label : '创建日期', 
      field : 'creationDate', 
      sortable : true 
     }, { 
      label : '创建人', 
      field : 'createdBy', 
      sortable : true 
     }, { 
      label : '描述', 
      field : 'description', 
      sortable : true 
     } ]; 

     **var grid = new (declare([ Grid, Selection, Keyboard, Pagination ]))({ 
      store : store, 
      getBeforePut : false, 
      columns : columns, 
      minRowsPerPage : 10, 
      pagingLinks : 1, 
      loadingMessage : '数据加载...', 
      selectionMode : "single", 
      noDataMessage : '没有查到数据' 
     }, "simple_store_dgrid_table"); 
     grid.startup();** 

     var toolbar = new Toolbar({}, "simple_store_dgrid_table_toolbar"); 

     var clear = new Button({ 
      onClick : function() { 
       var batch_no = registry.byId("simple_store_dgrid_search_batch_no"); 
       batch_no.set('value', ''); 
      } 
     }, "simple_store_dgrid_clear_button"); 

     var search = new Button({ 
      onClick : function() { 
       **var batch_no = registry.byId("simple_store_dgrid_search_batch_no"); 
       grid.set("query", { 
        batch_no : batch_no.get('value') 
       });** 
      } 
     }, "simple_store_dgrid_search_button"); 
    }); 

Я всегда могу получить данные на стороне сервера, но иногда данные не отображаются.

ответ

2

Quita ла paginacion:

Примечания: расширение Pagination должно быть смешанно в список или Grid, НЕ один из OnDemand конструкторов, так как те, содержит свою собственную логику виртуальной прокрутки. Внутри, Pagination наследует от того же _StoreMixin модуля, унаследованного прототипами OnDemand для общей интеграции с dojo/store.

https://github.com/SitePen/dgrid/wiki/Pagination

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