2011-01-30 89 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"); 

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