2012-01-23 31 views
5

Ben donmuş sütunda ve burada filtre araç çubuğu ile aşağıdaki demo gördük çalışmıyor: http://www.ok-soft-gmbh.com/jqGrid/FrozenColumns.htmjqGrid geçiş filtresi araç çubuğu

Şimdi demo availbale oldu geçiş özelliğini uygulamak isteyen aynı örneğin: http://www.ok-soft-gmbh.com/jqGrid/SimpleLocalGridWithSearchingToolbar1.htm

Denedim ama işe yaramıyor .. Herkes donmuş sütunu ve filtre araç çubuğunu daraltan bir demo oluşturabilir mi? u konu i frozendiv ihtiyacı yok düşünce giderilmiştir dedi


I (github son jqGrid kodunu indirmek için çalıştı ve şöyle demo çoğaltmak için çalıştı, fixGBoxHeight fonksiyonları demo u me göstermiştir daha önce http://www.ok-soft-gmbh.com/jqGrid/FrozenColumnsAndFilterToggle.htm)

$grid.jqGrid({ 
     datatype: 'local', 
     data: mydata, 
     colNames: [/*'Id', */'Client', 'Date', 'Amount', 'Tax', 'Total', 'Closed', 'Shipped via', 'Notes'], 
     colModel: [ 
      //{name: 'id', index: 'id', width: 45, align: 'center', sorttype: 'int', frozen: true}, 
      {name: 'name', index: 'name', width: 70, editable: true, frozen: true}, 
      {name: 'invdate', index: 'invdate', width: 80, align: 'center', sorttype: 'date', 
       formatter: 'date', formatoptions: {newformat: 'm/d/Y'}, datefmt: 'm/d/Y'}, 
      {name: 'amount', index: 'amount', width: 75, formatter: 'number', align: 'right', editable: true}, 
      {name: 'tax', index: 'tax', width: 50, formatter: 'number', 
       formatoptions: {decimalSeparator: ".", thousandsSeparator: " ", decimalPlaces: 4, defaultValue: '0.0000'}, 
       align: 'right', editable: true, editoptions: {readonly: true}}, 
      {name: 'total', index: 'total', width: 60, formatter: 'number', align: 'right', editable: true}, 
      {name: 'closed', index: 'closed', width: 70, align: 'center', editable: true, 
       formatter: 'checkbox', edittype: 'checkbox', editoptions: {value: 'Yes:No', defaultValue: 'Yes'}}, 
      {name: 'ship_via', index: 'ship_via', width: 100, align: 'center', formatter: 'select', editable: true, 
       edittype: 'select', editoptions: {value: 'FE:FedEx;TN:TNT;IN:Intim', defaultValue: 'Intime'}}, 
      {name: 'note', index: 'note', width: 70, sortable: false, editable: true} 
     ], 
     rowNum: 10, 
     rowList: [5, 10, 20], 
     pager: '#pager', 
     gridview: true, 
     rownumbers: true, 
     sortname: 'invdate', 
     viewrecords: true, 
     sortorder: 'desc', 
     caption: 'Frozen columns with dynamic shown filter toolbar', 
     height: '100%', 
     shrinkToFit: false, 
     width: 550, 
     resizeStop: function() { 
      /*resizeColumnHeader.call(this); 
      fixPositionsOfFrozenDivs.call(this); 
      fixGboxHeight.call(this);*/ 
     }, 
     loadComplete: function() { 
      //fixPositionsOfFrozenDivs.call(this); 
     } 
    }); 
    $grid.jqGrid('navGrid', '#pager', {add: false, edit: false, del: false}, {}, {}, {}, 
     {multipleSearch: true, overlay: 0}); 
    $grid.jqGrid('filterToolbar', {stringResult: true, searchOnEnter: true, defaultSearch: 'cn'}); 
    $grid.jqGrid('navButtonAdd', '#pager', { 
     caption: "Filter", 
     title: "Toggle Searching Toolbar", 
     buttonicon: 'ui-icon-pin-s', 
     onClickButton: function() { 
      this.toggleToolbar(); 
      /*if ($.isFunction(this.p._complete)) { 
       if ($('.ui-search-toolbar', this.grid.hDiv).is(':visible')) { 
        $('.ui-search-toolbar', this.grid.fhDiv).show(); 
       } else { 
        $('.ui-search-toolbar', this.grid.fhDiv).hide(); 
       } 
       this.p._complete.call(this); 
       fixPositionsOfFrozenDivs.call(this); 
      }*/ 
     } 
    }); 
    $grid[0].toggleToolbar(); 
    /*$grid.jqGrid('gridResize', { 
     minWidth: 450, 
     stop: function() { 
      fixPositionsOfFrozenDivs.call($grid[0]); 
      fixGboxHeight.call($grid[0]); 
     } 
    }); 
    resizeColumnHeader.call($grid);*/ 
    $grid.jqGrid('setFrozenColumns'); 
    /*$grid.p._complete.call($grid); 
    fixPositionsOfFrozenDivs.call($grid);*/ 
}); 

yani Ama yine kod işe gitmiyor ve önceki demoda olduğu gibi filtertoolbar (çalışmıyor http://www.ok-soft-gmbh.com/jqGrid/FrozenColumnsAndFilterToggle .htm)

cevap

3

Her şeyden önce ben , the demo yerine the previous answer'dan temel olarak the answer numaralı telefonu kullanmanız önerilir.

Haklısınız. Donmuş sütunların mevcut uygulaması, arama araç çubuğunun dinamik gösterilmesi veya gizlenmesiyle ilgili bir soruna sahiptir. toggleToolbar’da bir hata olarak yorumluyorum.

Hata giderilinceye kadar Kılavuzun donmuş bölümünde araç çubuğunu el ile göstermenizi veya gizlemenizi öneririm. The demo, bunun nasıl uygulanacağını gösterir. Aşağıda bulacağınız demonun kodunun en önemli kısmı:

$grid.jqGrid('filterToolbar', {stringResult: true, searchOnEnter: true, defaultSearch: 'cn'}); 
$grid.jqGrid('navButtonAdd', '#pager', { 
    caption: "Filter", 
    title: "Toggle Searching Toolbar", 
    buttonicon: 'ui-icon-pin-s', 
    onClickButton: function() { 
     this.toggleToolbar(); 
     if ($.isFunction(this.p._complete)) { 
      if ($('.ui-search-toolbar', this.grid.hDiv).is(':visible')) { 
       $('.ui-search-toolbar', this.grid.fhDiv).show(); 
      } else { 
       $('.ui-search-toolbar', this.grid.fhDiv).hide(); 
      } 
      this.p._complete.call(this); 
      fixPositionsOfFrozenDivs.call(this); 
     } 
    } 
}); 
$grid[0].toggleToolbar(); 
+0

Teşekkürler .. Gecikmiş cevap için özür dilerim. ama tam olarak aradığım şey bu. Şüphesiz, eğer sayfada birden fazla ızgara varsa, o zaman tüm fonksiyonlar için kullanabilmem için 3 fonksiyonunu yani resizeColumnHeader, fixPositionsOfFrozenDivs, fixGboxHeight'u ortak bir bloğa taşımak mümkündür. –

+0

@ user109124: Evet tabi ki yapabilirsiniz. Ayrıca, [düzeltilmiş] olan [hatayı] düzeltebilirsiniz (http://www.trirand.com/blog/?page_id=393/bugs/usage-of-toggletoolbar-with-frozen-columns/#p25779). jqGrid'in ana kodunda https://github.com/tonytomov/jqGrid/commit/f802d0329f4d1740e57bd52cdf251858284a0e8b) bulunur. – Oleg

+0

@Karmağım yüklendiğinden, aynı nasıl elde edilebiliyor? – Vikas

İlgili konular