2013-05-02 52 views
1

我想初始化我的jqGrid內聯導航器。使用版本4.4.0。代碼:jqGrid內嵌導航器不初始化

$('#line-items-grid').jqGrid({ 
    caption  : '', 
    width  : 704, 
    shrinkToFit : 1, 
    forceFit  : true, 
    scrollOffset : 0, 
    url   : '', 
    datatype  : 'local', 
    rowNum  : 20, 
    viewrecords : true, 
    height  : 'auto', 
    gridview  : true, 
    autoencode : true, 
    pager  : '#line-items-pager', 
    colModel  : [ 
     {label: 'Commodity', name: 'contract_material', sortable: false, width: 99, cellattr: word_wrap, editable: true, classes: 'line-item-contract-material', edittype: "select"}, 
     {label: 'Date',  name: 'date',    sortable: false, width: 77, cellattr: word_wrap, editable: true, classes: 'line-item-date', editoptions: { 
      dataInit: function (el) { 
       $(el).datepicker(); 
      } 
     }}, 
     {label: 'Vendor',  name: 'vendor',   sortable: false, width: 95, cellattr: word_wrap, editable: true, classes: 'line-item-vendor', editoptions: {maxlength: "50"}}, 
     {label: 'Ticket/PO#', name: 'ticket_po_num',  sortable: false, width: 66, cellattr: word_wrap, editable: true, classes: 'line-item-ticket-po-num', editoptions: {maxlength: "50"}}, 
     {label: 'Lbs',  name: 'lbs',    sortable: false, width: 73, cellattr: word_wrap, editable: true, classes: 'line-item-lbs'}, 
     {label: 'Units',  name: 'units',    sortable: false, width: 49, cellattr: word_wrap, editable: true, classes: 'line-item-units'}, 
     {label: 'Rate/Ton', name: 'rate_per_ton',  sortable: false, width: 64, cellattr: word_wrap, editable: true, classes: 'line-item-rate-per-ton'}, 
     {label: 'Rate/Unit', name: 'rate_per_unit',  sortable: false, width: 64, cellattr: word_wrap, editable: true, classes: 'line-item-rate-per-unit'}, 
     {label: 'Total',  name: 'total',    sortable: false, width: 72, cellattr: word_wrap, editable: true, classes: 'line-item-total'} 
    ], 
    jsonReader : { 
     repeatitems: false 
    }, 
    onSelectRow : function (id) { 
     if (id && id !== lastsel) { 
      $('#line-items-grid').jqGrid('restoreRow', lastsel); 
      $('#line-items-grid').jqGrid('editRow', id, 
       { 
        keys: true, 
        extraparam: { 
         reporting_period_id: function() { return $('#reporting_period_filter').val(); }, 
         pickup_id: function() { return $('#pickup_filter').val(); }, 
         lbs_per_ton: function() { return material_lbs_per_ton[$('#line-items-grid tr#' + id).find('td.line-item-contract-material select').val()]; } 
        }, 
        oneditfunc: lineItemEditPrep, 
        aftersavefunc: lineItemSuccess, 
        errorfunc: lineItemError, 
        afterrestorefunc: function() { $('.qtip').qtip('destroy'); }, 
        restoreAfterError: false 
       }); 
      //clear out error messages 
      $('.qtip').qtip('destroy'); 

      lastsel = id; 
     } 
    }, 
    gridComplete : lineItemViewPrep, 
    editurl  : "line_items/line_item_edit" 
}); 
$('#line-items-grid').jqGrid('navGrid', '#line-items-pager', { 
    add: false, 
    edit: false, 
    del: false 
}); 
$('#line-items-grid').jqGrid('inlineNav', '#line-items-pager'); 

我得到常規導航器(視圖和刷新)顯示的按鈕,但沒有內聯導航器的按鈕。我錯過了什麼?

(側面說明,如果是相關的:我設置在加載數據到網格中的單獨功能的URL和數據類型選項)

回答

2

我建議你使用的jqGrid的最後一個版本。它目前是4.4.5版本。在jqGrid 4.4.0和4.4.5之間許多 bug修復。

你描述的問題已經在jqGrid 4.4.1中解決了。如果你真的需要使用舊4.4.0,那麼你應該解決the linenavButtonAdd方法內(它在jquery.jqGrid.src.js行號8796)

if(p.id && $("#"+$.jgrid.jqID(p.id), findnav).html() !== null) {return;} 

到行

if(p.id && $("#"+$.jgrid.jqID(p.id), findnav)[0] !== undefined) {return;} 

比較your original demo結果與the same code which used the described above fix