私はいくつかのデータ(ユーザーリスト)を持つグリッドを持っています。各行には、更新、削除、アクティブ化、サスペンドなどの多くのアクションがあります。Extjsグリッド内のComboBox
400〜500ピクセルを超えるボタンをたくさん配置するのではなく、各フィールドにアクションを適用してコンボボックスを配置したいと考えています。
問題は、ちょうどそのような列の行にコンボボックスをレンダリングできないか、何か不足しているということですか?誰かがこれでいくつかの光を当てることができますか?
new Ext.grid.GridPanel({
region: 'center',
id: 'usersGrid',
store: store,
stripeRows: true,
autoExpandColumn: 'username',
columns: [
{
// username
},
{
// email
},
{
// last seen
},
{
// actions combo, it won't show
header : '',
width : 220,
fixed : true,
hideable : false,
dataIndex: 'actions',
renderer: new Ext.form.ComboBox({
store: new Ext.data.SimpleStore({
id: 0,
fields: ['abbr', 'action'],
data : [
['suspend', 'Suspend'],
['activate', 'Activate'],
['update', 'Update'],
['delete', 'Delete']
]
}),
displayField:'action',
valueField: 'abbr',
mode: 'local',
typeAhead: false,
triggerAction: 'all',
lazyRender: true,
emptyText: 'Select action'
})
}
]
})
はい..あなたは正しいです。もう一つ問題が残るのは、エディタグリッドがコンボボックスを表示するためにそのセルをクリックする必要があり、それが私の望むものではないということです。現在、私はこの問題を投稿した人に何らかの問題を抱えていました。最初にコンボボックスを表示してコンボボックスからアクションを選択できるようにします。私はextjsを使用しています3.3.1 –
あなたはComboBoxのように見えるようにセルをスタイルする必要があります。 EditorGridでセルを編集するには、実際にはシングルトンのComboBoxしかありません。そのため、希望の効果を得るには、セルをComboBoxのように見せる必要があります。 (これはとにかくたくさんのComboBoxをレンダリングするよりもはるかに高速です。) –