2016-10-04 39 views
0

我添加了包含两个组件的可分页列表视图,一个是文本字段,另一个是下拉列表。检查验证的正常方法是添加一个反馈面板。但是当在网格中使用相同的方法时,它提供了一个错误,说明使用wicket:id =“xy”的反馈组件已经被解析。 有什么方法来验证这些组件? JAVA CODEHTML CODE如何验证java wicket中pageablelistview中的文本字段

+1

当你说“同样的方法”你指的是什么方法?此外,您是否可以提供一段解释您的使用情况的代码片段,即您如何实例化您的反馈面板和表单组件以及其他相关代码。 – WiseTree

+0

@WiseTree我在说明中添加了我的html和java代码 – ExTincT

+0

您还可以提供wicket产生的错误吗? – 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每次我添加一个新的行。这个错误弹出。我不知道如果反馈面板允许在网格中。 – ExTincT

+0

如果你指的是'GridView',那么是的。 – WiseTree