Wicket动态地将数据从数据库添加到页面

时间:2015-11-27 20:04:44

标签: html-table wicket

我尝试在应用"过滤"

之后,尝试将一些数据添加到数据库的页面中

提交表格后,候选人名单会更新,我想将此更改推送到页面。

我怎样才能在检票口做到这一点?

.java文件

public class SearchCandidate extends WebPage {
    private SearchCandidateModel searchCandidateModel = new SearchCandidateModel();
    private List<CandidateEntity> candidate = new ArrayList();

    public SearchCandidate(PageParameters p) {
        super(p);

        final TextField<String> firstName = new TextField<>("first_name", new PropertyModel<String>(searchCandidateModel, "firstName"));    //Filter

        final DataView dataView = new DataView("simple", new ListDataProvider(candidate)) {
            public void populateItem(final Item item) {
                final CandidateEntity user = (CandidateEntity) item.getModelObject();
                item.add(new Label("firstName", user.getFirstName()));
            }
        };
        Form<?> form = new Form<Void>("step1") {
            @Override
            protected void onSubmit() {
                candidate = databse.findCandidate(searchCandidateModel.getFirstName());
                //UPDATE TABLE
            }
        };
        form.add(firstName);
        add(form);
        add(dataView);
    }

}

html文件:

<form wicket:id="step1">
    <input wicket:id="first_name" type="text" size="30"/>
</form>

<table cellspacing="0" class="dataview">
    <tbody>
    <tr wicket:id="simple">
        <td><span wicket:id="name">Test ID</span></td>
    </tr>
    </tbody>
</table>

1 个答案:

答案 0 :(得分:3)

你可以让你成为DataProvider - 动态:

{{1}}

这样,提供程序将始终根据您的数据过滤器加载数据。

有关静态与动态模型/提供程序的详细信息,请检查: https://cwiki.apache.org/confluence/display/WICKET/Working+with+Wicket+models#WorkingwithWicketmodels-DynamicModels