EXTJS 4 Рендеринг панели как окна сообщений - PullRequest
1 голос
/ 04 января 2012

То, что я пытаюсь сделать, это добавить информацию в сетку данных, затем у меня есть кнопка «добавить», когда я нажимаю на нее, она покажет панель, где я могу добавить всю информацию, необходимую для заполнения сетки данных.,

Панель для добавления информации должна отображаться следующим образом:

http://img94.imageshack.us/img94/2662/emailhelp.jpg

На приведенном выше рисунке я сделал это с окном сообщений, подобным этому:

     Ext.MessageBox.show({
        title : 'Email Information',
        msg : 'your email:',
        width : 300,
        buttons : Ext.MessageBox.OKCANCEL,
        multiline : true,
        fn : addEmailInfo,
        animateTarget : 'btn_add'
    });

Тогда мне нужно нечто подобное, но с панелью, в которую я мог бы добавить больше компонентов.

Я искал, но ничего не нашел, заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 04 января 2012

Я посмотрел, но нет предопределенного метода ExtJS, чтобы открыть строку сетки на панели формы (должно быть).

Существует встроенное расширение для редактирования строк для сеток ExtJS, которое работает очень хорошо. Просто дважды щелкните по строке сетки, и запись откроет редактируемые поля для любых данных, которые вы устанавливаете как редактируемые .Еще несколько подробностей о его реализации: здесь .

Если это не сработает, вам нужно будет создать новое Ext.window и добавитьВаша собственная панель формы / поля в нее.Создайте прослушиватель onclick в сетке, который

  1. заполняет форму / поля выбранными данными записи, а

  2. показывает окно (myWindow.show()).

Вы также должны написать метод для сохранения отредактированной или вновь созданной записи в хранилище данных (используя myDataStore.set([field],[value])), а также строку для фиксации ее в базе данных (если это так).где вы получаете данные).

Чтобы ответить на ваш вопрос более точно, новое окно, в которое вы можете добавить другие поля, может быть сделано так:

myWindow = Ext.create('Ext.window.Window', {
    id: 'recordWindow',
    title: 'New Particle',
    resizable: false,
    closable: false,
    width: 605,
    minWidth: 300,
    minHeight: 200,
    y: 150,
    layout: 'fit',
    plain:true,
    items: myFormPanel, //your form or fields would go here
    buttons: [{
        text: 'Save',
        handler: saveRecord()
    },{
        text: 'Cancel',
        handler: resetRecordWindow()
    }]
});            
0 голосов
/ 05 января 2012

Как насчет этого примера? Справа от него показана сетка с формой редактирования. Если вам это не нравится, тогда вы можете обернуть форму в компонент окна, как предложил Geronimo. http://docs.sencha.com/ext-js/4-0/#!/example/form/form-grid.html

...