2016-10-04 6 views
0

Я добавил список страниц с двумя компонентами, одно текстовое поле, а другое - выпадающее меню. Обычным способом проверки для проверки является добавление панели обратной связи. Но когда тот же метод используется в сетке, он дает ошибку, говоря, что компонент обратной связи с калитки: id = «xy» уже проанализирован. Есть ли способ проверить эти компоненты? JAVA CODEHTML CODEКак проверить правильное текстовое поле в странице listviewlist в java wicket

+1

Когда вы говорите «тот же метод», какой метод вы имеете в виду? Кроме того, вы могли бы предоставить фрагмент кода, объясняющий ваше использование, т. Е. Как вы создаете свои панели обратной связи и компоненты вашей формы, а также любой другой соответствующий код для отношений между ними. – WiseTree

+0

@WiseTree Я добавил коды html и java в описании – ExTincT

+0

Не могли бы вы также сообщить об ошибке, которую производит калитка? – WiseTree

ответ

0

Где-то в коде (например, изменённые Form#onSubmit() или Form#onError(), один из ваших поведения Ajax и т.д.) вы добавляете компонент с калиткой ID «FeedbackSubQuestions_» снова, даже если этот компонент уже был добавлен ранее. Что-то вроде следующего:

public class MyPage extends WebPage { 

    public MyPage() { 
     this.add(new FeedbackPanel("FeedbackSubQuestions_")); 
     this.add(new Form<Void>("myForm"){ 
      @Override 
      protected void onError() { 
       // This call the produce the error as the feedback component is already in the component hierarchy 
       MyPage.this.add(new FeedbackPanel("FeedbackSubQuestions_")); 
      } 
     }); 
     ... 
     Adding all the form components with validation and their ajax behaviors 
     ...   
    } 
} 

В калитку, как только вы построить иерархию компонентов, последующие взаимодействия с страницы не нужно инициализировать какой-либо из него больше. То есть, добавив панель обратной связи, чтобы она отображала ваши отзывы, вам не нужно снова добавлять эту панель. Если есть ошибки, которые необходимо отобразить (например, проверка формы завершается неудачно, или Component#error(String) вызывается вручную), обратная связь будет автоматически извлекать их при повторной визуализации панели обратной связи (например, когда вы добавляете ее в ответ на ajax или всю страницу будучи повторно представленным как часть процесса подачи формы).

+0

Я использую редактируемую сетку для отображения textbox.so каждый раз, когда добавляю новую строку. Эта ошибка появляется. Не знаю, разрешена ли панель обратной связи в Grid. – ExTincT

+0

Если вы имеете в виду «GridView», то да. – WiseTree