それは期待される結果です:http://rghost.net/39116974/image.png。そのため、最後の「キャプション」のチェックを外すことはできません。
前もって感謝します。
それは期待される結果です:http://rghost.net/39116974/image.png。そのため、最後の「キャプション」のチェックを外すことはできません。
前もって感謝します。
Ext.grid.column.ColumnView
プロパティを持っていhideable
ます。
ユーザーがこの列を非表示にできないようにするには、False。
デフォルト: true
これはどう
for(var i=0; i< grid.columns.length - 1; i++)
grid.columns[i].hide();
1 つを除いてすべてを非表示にする場合は、Ext.grid.GridView のメソッドhandleHdMenuClick を確認する必要があります ( 2.3、3.0、3.1 ext バージョンで使用しました) 。列のプロパティ:
handleHdMenuClick : function(item){
var index = this.hdCtxIndex;
var cm = this.cm, ds = this.ds;
switch(item.id){
case "asc":
ds.sort(cm.getDataIndex(index), "ASC");
break;
case "desc":
ds.sort(cm.getDataIndex(index), "DESC");
break;
default:
index = cm.getIndexById(item.id.substr(4));
if(index != -1){
if(item.checked && cm.getColumnsBy(this.isHideableColumn, this).length <= 1){
this.onDenyColumnHide();
return false;
}
cm.setHidden(index, item.checked);
}
}
return true;
},
isHideableColumn : function(c){
return !c.hidden && !c.fixed;
},
ただし、2.x バージョンでは固定プロパティが使用されていたのが唯一の違いでしたが、3.x 以降では使用されませんでした。この問題を修正するには、オーバーライド ファイルを追加する必要があります。
Ext.override(Ext.grid.GridView, {
handleHdMenuClick : function(item) {
var store = this.ds,
dataIndex = this.cm.getDataIndex(this.hdCtxIndex),
result = true;
switch (item.getItemId()) {
case 'asc':
store.sort(dataIndex, 'ASC');
break;
case 'desc':
store.sort(dataIndex, 'DESC');
break;
default:
result = this.handleHdMenuClickDefault(item);
}
return result;
},
handleHdMenuClickDefault: function(item) {
var colModel = this.cm,
itemId = item.getItemId(),
index = colModel.getIndexById(itemId.substr(4));
if (index != -1) {
if (item.checked && colModel.getColumnsBy(this.isHideableColumn, this).length <= 1) {
this.onDenyColumnHide();
return false;
}
colModel.setHidden(index, item.checked);
}
},
isHideableColumn : function(c) {
return !c.hidden && !c.fixed;
}
});
グリッドをレンダリングする前に、最後の列を見つけて、その非表示を false に設定できます。
すなわち:
myGrid.on( 'beforerender', function(){
myGrid.colModel = myGrid.getColumnModel();
myGrid.colModel.config[ myGrid.colModel.config.length - 1 ].hideable = false;
} );