私は持っています:
dockedItems: [{
xtype: 'toolbar',
store: 'RecordsListStore',
selModel: {
selType: 'cellmodel'
},
そしてこのようなアイコンのカップル:
},{
icon: g_settings.iconUrl + 'view-icon.png',
text: 'View',
itemId: 'view-selected-record-from-grid',
scope: this
},{
これは私の見解であり、私のコントローラーには次のようにトリガーされる関数があります。
'#view-selected-record-from-grid' : {
click: this.onViewRecordClick
}
問題は、アラートメッセージを表示したいということです。何も選択されていないときにユーザーがボタンをクリックした場合。私の関数では、次のように、選択したアイテム(存在する場合)の情報を取得します。
onViewRecordClick: function() {
/**
*Getting the id of the record from the selected row
*/
var id = this.getRecordsListGrid().getSelectionModel().getCurrentPosition().row;
var rec = Ext.data.StoreManager.lookup('RecordsListStore').getAt(id);
rec = rec.data.id;
その後、Ajaxリクエストを呼び出すので、これら2つの部分の間で値を確認し、値が未定義(アイコンが選択せずにクリックされる)であるかどうかを確認して、ユーザーにこれを警告します。しかし、私がこれを試してみると:
if(id == undefined) { alert('No selection');}
何も選択されていないときにアイコンをクリックすると、アラートメッセージは表示されませんが、コンソールに次のようなエラーが表示されます。
this.getRecordsListGrid()。getSelectionModel()。getCurrentPosition()。row; 未定義です
それだけです。この問題を回避するためにいくつかのことを試みます。これは、関数が未定義の変数を検出したときに関数が停止するためですが、それでも有効な解決策を見つけることができません。
ありがとう
レロン