3列のグリッドを作成したい。 1つの列は「テキストフィールド」で、他の2つの列は「ファイルフィールド」としてエディタを設定するイメージです。イメージカラムでは、レンダラーを使用してイメージを表示できますが、新しいイメージを編集または追加する場合は、ブラウズボタンを押してイメージをブラウズすることはできません。ここに私のコードです。ExtJS4 - ファイルアップロードエディタをGridに追加するには?
var grid = Ext.create('Ext.grid.Panel', {
title: 'Author',
store: Ext.data.StoreManager.lookup('authorStore'),
renderTo: 'authorGrid',
columns: [{
header: 'Name',
dataIndex: 'name',
editor: {
xtype: 'textfield',
}
}, {
header: 'Icon',
dataIndex: 'iconImage',
renderer: function(val) {
return '<img src="' + val + '">';
},
editor: {
xtype: 'filefield',
allowBlank: false,
}
}, {
header: 'Background',
dataIndex: 'background',
renderer: function(val) {
return '<img src="' + val + '">';
},
editor: {
xtype: 'filefield',
allowBlank: false,
}
}],
selModel: Ext.create('Ext.selection.CheckboxModel'),
plugins: [
Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 2
})
],
tbar: [{
iconCls: 'icon-add',
text: 'Add',
handler: function() {
// add record
}
}, {
iconCls: 'icon-delete',
text: 'Remove',
handler: function() {
// remove selected records...
}
}, {
iconCls: 'icon-save',
text: 'Save',
handler: function() {
store.save();
}
}]
});
何が間違っていますか?このような 'ファイルフィールド'エディターを置くことはできますか?グリッドデータを保存して画像をアップロードするためにグリッド上の保存ボタンをクリックすることは可能ですか?
ありがとうinnerJL!あなたのアプローチは私の要求を解決します。 –