2012-11-15 22 views
5

Lütfen yardım edin! ExtJs 4.1 ızgara paneli kullanıyorum.Ekstralar Izgara paneli - Oluşturulmadan sonra enableColumnHide özelliğini değiştirin

Oluşturma işleminden sonra grid enableColumnHide özelliğini değiştirmenin bir yolunu arıyorum. Aynı ızgarayı, özellikle sütunların bazılarını gizleyen küçük değişiklikler içeren birkaç ekranda yeniden kullanıyorum.

Bu ekranlardan birinde yalnızca gizlenemeyen sütunlarla ayrıldım; bu nedenle, seçenek, sütun başlığı menüsünden tamamen kaldırmak, ancak diğer ekranlardan birine geldiğimde geri yüklemek istiyorum.

Herhangi bir fikrin var mı?

cevap

1

Bunu yapmak için açık bir yol yok gibi görünüyor, ama üzerinde bir hack - enableColumnHide değiştirdi ve bu değeri her değiştirdiğinizde üstbilgi menüsünü yok. Örnek kod: ben de bir vardı http://jsfiddle.net/M3Aqq/9/

+0

ilginç (sadece tek bir menü öğesi kendisidir "Sütunlar" alt menüsünü gizlemek) ... misiniz sütunlarda Hideable özelliği için de bu iş? – danfromisrael

+0

Gizlenebilir halde menüyü yok etmeye gerek yoktur. Cevabımı güncelledim. – Krzysztof

+0

Bu awesomem, 10x Lolo! Bu şekilde, "Sütunlar" onay kutusu listesinde gizlenmeyen sütunların görünmemesi için herhangi bir yol var mı? Kullanıcının yalnızca o listede gizleyebileceği sütunları görmesini isterim –

2

: numuneyi Çalışma

var checkbox = new Ext.form.field.Checkbox({ 
    renderTo: 'checkbox', 
    boxLabel: 'enableColumnHide', 
    checked: true, 
    handler: function(sender, checked) { 
     Ext.each(grid.columns, function(c){ 
      c.hideable = checked; 
     }); 
    } 
}); 

enableColumnHide ile: numuneyi Çalışma http://jsfiddle.net/M3Aqq/5/

hideable ile

var checkbox = new Ext.form.field.Checkbox({ 
    renderTo: 'checkbox', 
    boxLabel: 'enableColumnHide', 
    checked: true, 
    handler: function(sender, checked) { 
     var h = grid.headerCt; 
     h.enableColumnHide = checked; 
     if (h.menu) { 
      h.menu.destroy(); 
      h.menu = null; 
     } 
    } 
}); 

Bu sütunlarda hideable kullanarak da posiible var daha önce benzer bir problem. "Hideable" göre menüsünde her hideable sütun onay kutusu öğesini temelde i ızgara başlık menüsünün "beforeshow" olayına kayıtlı ettik

Extjs Grid panel - Hide a column with hideable=false

ve gizlemek: Benim Geçici çözüm için burayı kontrol edebilirsiniz her sütunda propery.

siz "enableColumnHide" Aynı işlemleri

İlgili konular