extjsでグリッドを作成しました。4. selection.CheckboxModelが実装されています。これは、特定の行をクリックするたびに行が選択/選択解除されることを意味します。今私はカスタムボタンが含まれているので、最後の列でこの選択を無効にしたい。 (私は、ボタンがクリックされた場合、行を選択したくありません)。ExtJS 4 - グリッド - 特定の列の行選択を無効にする
これはどのように行うのですか?
事前に感謝します。
extjsでグリッドを作成しました。4. selection.CheckboxModelが実装されています。これは、特定の行をクリックするたびに行が選択/選択解除されることを意味します。今私はカスタムボタンが含まれているので、最後の列でこの選択を無効にしたい。 (私は、ボタンがクリックされた場合、行を選択したくありません)。ExtJS 4 - グリッド - 特定の列の行選択を無効にする
これはどのように行うのですか?
事前に感謝します。
これは、Senchaのドキュメントが不足している場合にのみ、実際には少し難しい問題です。
実際には、CheckboxModelにはbeforeselect
イベントが継承されています(Ext.selection.RowModel
)。しかし、列インデックスを簡単に取得する方法はありません。なぜなら、それはRowModelのポイントなので正直です。
beforecellmousedown
と呼ばれるExt.view.Table
(グリッドが継承する)の文書化されていないイベントがあります。
viewConfig: {
listeners: {
beforecellmousedown: function(view, cell, cellIdx, record, row, rowIdx, eOpts){
if(cellIdx === indexOfLastColumnInGrid){
return false;
}
}
}
}
セルと行の両方のインデックスはゼロベースです:
ですから、おそらくこのような何かをしようとするだろう。
この記事を読むhttp://www.learnsomethings.com/2012/01/12/stopping-a-checkbox-from-allowing-select-in-an-extjs-4-grid-checkbox-column-via-the-ext-selection-checkboxmodel/ 私はそれがあなたを助けてくれることを願っています。
親愛なるAliaksei、ご返信ありがとうございます。 – user1245146
「beforeselect」の範囲内で、どの列をクリックしたかを確認できますか? – user1245146
listeners: {
beforecellmousedown: function(view, cell, cellIdx, record, row, rowIdx, eOpts) {
if (String(eOpts.getTarget()) == '[object HTMLButtonElement]') {
return false;
}
}
}
ありがとうエリック。これは私の最終的な解決策です!
ありがとうエリック!私はそれを試してみましょう! – user1245146