在slickGrid中进行分页

时间:2011-01-30 23:47:43

标签: javascript jquery paging slickgrid pager

我能够在slickGrid中使用分页但是我不熟悉jquery和slickGrid,并且不能在页面之间移动。谁能帮我这个?任何帮助是极大的赞赏。谢谢!

$(document).ready(function() {var columns = [
{id:"counter", name:"#",field:"counter"},
{id:"data1", name:"Data 1",field:"data1"},
{id:"data2", name:"Data 2",field:"data2"},
{id:"data3", name:"Data 3",field:"data3"},
{id:"data4", name:"Data 4",field:"data4"}];

var options = { enableCellNavigation: false,
enableColumnReorder: false};

var FB_C_grid;
var FB_C_data;
var selectedRowIds = [];
var dataView;

$(function() {
FB_C_data = []; 
FB_C_data[0]={"id":"0",
"data1":"test1",
"data2":"test1",
"data3":"test1",
"data4":"test1,
"counter":"1"
}; 

for (var i=1; i<50000; i++) {
    var d = (FB_C_data[i] = {});enter code here

    d["id"] = "id_" + i;
    d["data1"] = "data1_" + i;
    d["data2"] = "data2_" + i;
    d["data3"] = "data3_" + i;
    d["data4"] = "data4_" + i;
                d["counter"] = i;
   }


    dataView = new Slick.Data.DataView();
    dataView.setItems(FB_C_data);
    dataView.setPagingOptions({pageSize:20});
    FB_C_grid= new Slick.Grid($("#FB_C_sheet"),dataView.rows, columns,options);
    var pager = new Slick.Controls.Pager(dataView, FB_C_grid, $("#pagerTest"));

    dataView.onRowsChanged.subscribe(function(rows) {
 FB_C_grid.removeRows(rows);
 FB_C_grid.render();

         if (selectedRowIds.length > 0)
    {
     // since how the original data maps onto rows has changed,
     // the selected rows in the grid need to be updated
     var selRows = [];
     for (var i = 0; i < selectedRowIds.length; i++)
     {
      var idx = dataView.getRowById(selectedRowIds[i]);
      if (idx != undefined)
       selRows.push(idx);
     }

      FB_C_grid.setSelectedRows(selRows);
    }
   });

   dataView.onPagingInfoChanged.subscribe(function(pagingInfo) {
    var isLastPage = pagingInfo.pageSize*(pagingInfo.pageNum+1)-1 >= pagingInfo.totalRows;
                var enableAddRow = isLastPage || pagingInfo.pageSize==0;
                var options = FB_C_grid.getOptions();

                if (options.enableAddRow != enableAddRow)
         FB_C_grid.setOptions({enableAddRow:enableAddRow});
   });

               dataView.onRowCountChanged.subscribe(function(args) {
    FB_C_grid.updateRowCount();
                FB_C_grid.render();
   });

})

  });

1 个答案:

答案 0 :(得分:0)

当您尝试将jQuery对象传递到SlickGrid时,我看到了一些错误,而SlickGrid已经在后面的代码中使用了jQuery。当您创建SlickGrid对象时,您只需要传递网格的名称,因此在您的代码中,您必须替换此$("#pagerTest")而不使用jQuery包装器成为此"#pagerTest"

我看到你在两个不同的地方称它为相同,所以用这个替换你的2行:

FB_C_grid= new Slick.Grid("#FB_C_sheet",dataView.rows, columns,options);
var pager = new Slick.Controls.Pager(dataView, FB_C_grid, "#pagerTest");

希望能帮助你实现目标......