2011-01-30 93 views
2

我能够在slickGrid中使用分页,但是我是jquery和slickGrid的新手,无法在页面之间移动。谁能帮我这个?任何帮助是极大的赞赏。谢谢!在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(); 
    }); 

}) 

    }); 

回答

0

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

我看到你在2个不同的位置调用它,所以这种取代你的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"); 

希望帮助你,它的工作...