2013-06-26 2 views
0

У меня есть внешнее окно JS с пружинной формой деталей пользователя. Кроме того, у меня есть валидатор пользователя в мой контроллер, так что, если форма содержит ошибки я могу увидеть, что ошибки являются:Показать ошибки весной формы внутри окна ExtJS 4

UserValidator userValidator = new UserValidator(); 
userValidator.validate(user, result); 
if(result.hasErrors()){ 
    return "RegisterUserForm"; 

Моя проблема относительно иметь такую ​​форму внутри окна ExtJS. Если я верну «RegisterUserForm», браузер перейдет к этой форме и покажет ошибки, но не в окне. Он отображает форму и ошибки на новой странице, а URL-адрес изменяется на/RegisterUserForm. (Это очевидно) Как я могу показать ту же форму с ошибками, не имея этой проблемы?

Спасибо

ответ

1

Есть 2 варианта:

  1. Изменить код сервера, чтобы сделать что вызов AJAX, который возвращает только данныебудет обрабатываться код ExtJS, а не формы страница
  2. Сделайте Ext.window.Window использовать плавающий фрейм с /RegisterUserForm URL:

ex:

Ext.create('Ext.window.Window', { 
    layout: 'fit', 
    //other config here 
    items: [{ 
     xtype: 'component', 
     autoEl: { 
      itemId: 'iframe', 
      tag: 'iframe', 
      src: '/RegisterUserForm', 
      frameBorder: 0 
     } 
    }] 
}).show() 
+0

IFrame работает для меня. Большое вам спасибо @kevhender. Кстати, другая альтернатива - это возвращение jsondata и сделать это с помощью формы extjs? – mannuk

+0

Существует несколько способов обработки данных JSON в зависимости от количества ожидаемых ошибок и способа их форматирования. С большим количеством ошибок с несколькими столбцами вы можете использовать 'Ext.grid.Panel'; с меньшим количеством ошибок и не так много информации, вы можете использовать «Ext.view.View» или даже просто старый «Ext.Component», который использует конфигурацию 'tpl' для форматирования отдельных ошибок. – kevhender

+0

aha .. @kevhender Мой контроллер возвращает текст json, когда submit is successuf. Можно ли поймать его с iframe, или я должен подумать, чтобы сделать форму ext для этого? – mannuk