0

私は持っています:

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; 未定義です

それだけです。この問題を回避するためにいくつかのことを試みます。これは、関数が未定義の変数を検出したときに関数が停止するためですが、それでも有効な解決策を見つけることができません。

ありがとう

レロン

4

1 に答える 1

1

getCurrentPosition()未定義を返すかどうかを確認します。

于 2012-05-03T13:05:56.380 に答える