私は2日を探していて、行選択にactioncolumn
コンポーネント(htmlではない)へのアクセス方法を見つけることができません。 Saki's component communication technique(source)を使用してアイコンをクリックしてイベントを設定する必要があります。 私の列は次のようになります。actioncolumnアイコンコンポーネントを取得する方法は?
sm: new Ext.grid.RowSelectionModel({
singleSelect: true,
listeners: {
beforerowselect: function(grid, rowIndex, record) {
// 7 is the last cell index
var cell = grid.grid.getView().getCell(rowIndex, 7);
//select icons in cell
var icons = Ext.DomQuery.select('.x-action-col-icon', cell);
//for each DOM element
Ext.each(icons, function(icon, index) {
currentIcon = Ext.get(icon);
//if not 1st button
if (index !== 0) {
//Delete class that hides. Class 'x-hidden' also works
currentIcon.removeClass('x-hide-display'); //show icon
}
});
},
rowdeselect: function(grid, rowIndex, record) {
// 7 is the last cell index
var cell = grid.grid.getView().getCell(rowIndex, 7);
//select icons in cell
var icons = Ext.DomQuery.select('.x-action-col-icon', cell);
//for each DOM element
Ext.each(icons, function(icon, index) {
currentIcon = Ext.get(icon);
//if not 1st button
if (index !== 0) {
//Delete class that hides. Class 'x-hidden' also works
currentIcon.addClass('x-hide-display'); //show icon
}
});
}
}
});
OK:
私は、変更行の選択に/非表示ボタンを表示する方法方法を(このコードはGridPanel
に使用しています)を発見しました。次。私はクリック時に別のウィンドウを表示したい(クリックイベントを設定する)。しかし、私はWindow
/Viewport
からのアクセスを取得する方法がわからない:
//get items
this.loanGrid = this.items.itemAt(0);
this.documentsGridWindow = this.items.itemAt(2);
//add events
this.loanGrid.on ({
scope: this,
afterrender: function() {
selModel = this.loanGrid.getSelectionModel();
selModel.on({
scope: this,
rowselect: function (grid, rowIndex, keepExisting, record) {
//HOW TO GET actioncolumn 2nd button here???
}
});
}
});
私もbeforerowselect
にこのアイコンにid
を設定しようとしましたが、rowselect
このコードExt.getCmp('icon-id')
戻りundefined
に。 up()
とdown()
機能ではない、あまりにも私を助け=(
助けてください!=)
P.S.悲しいですが、Ext.ComponentQuery
はExtJS 4からのみ動作します。
なぜcellclickの代わりにrowselectを使用するのか、またはclickについてのイベントを使用しているのか分かりませんか?私はcellclickを使用するproposteすることができます:http://docs.sencha.com/extjs/3.4.0/#!/api/Ext.grid.GridPanel-event-cellclick –
@MichaelLaneちょうど 'cellclick'が聞いていないキーボードイベント(上/下キー)は 'rowselect'を実行します。 – Sogl