gpt4 book ai didi

java - Wicket - 使用 AJAX 和 Wicket 模型更新 ListView

转载 作者:行者123 更新时间:2023-12-02 00:14:35 26 4
gpt4 key购买 nike

我有一个:

  • 客户端类
  • ListView
  • 文本字段

我需要填充 ListView 才能形成表格:

工作代码:

clientModel = new LoadableDetachableModel() {

@Override
protected Object load() {

return Client.getClientListByCompanyName(searchClientInput.getValue());
}
};

searchClientInput.setModel(new Model<String>());

searchClientInput.add(new AjaxFormComponentUpdatingBehavior("onkeyup") {

@Override
protected void onUpdate(AjaxRequestTarget target) {

target.add(clientListViewContainer);
}
});

clientListView = new ListView<Client>(CLIENT_ROW_LIST_ID, clientModel) {

@Override
protected void populateItem(ListItem<Client> item) {

Client client = item.getModelObject();

item.add(new Label(CLIENT_ROW_COMPANY_CNPJ_ID, client.getCompanyName()));
item.add(new Label(CLIENT_ROW_COMPANY_NAME_ID, client.getCompanyCnpj()));
}
};

clientListViewContainer.setOutputMarkupId(true);

clientListViewContainer.add(clientListView);

add(clientListViewContainer);

现在,在我的 HTML 中,我有一个 TextField。每当用户在此文本字段中键入内容时,都会在数据库中对其键入的内容进行选择。因此,对于每个单词,都会进行选择,并且需要更新表。我猜我需要使用 AJAX 和可能的模型。我有点不知道如何做到这一点,如果有人能为我提供示例,我将非常感激。

编辑:抛出异常的新代码:Last cause: Attempt to set model object on null model of component: searchClientForm:searchClientInput

编辑 2:好的,异常(exception)是我的 TextField 没有可以绑定(bind)数据的模型。所以我所做的是:searchClientInput.setModel(new Model<String>());

我在 Activity 中也遇到了问题。使用onkeydown正在工作,但未按预期进行。我的公司名称是 1-4。如果我输入公司名称 1,我需要再次按一个键,以便更新表格。与onkeyup这不会发生。感谢您的帮助。

最佳答案

您可以为 ListView 提供一个 LoadableDetachableModel,它提供与您的 TextField 值匹配的选定客户端。

在 TextField 上使用 AjaxFormComponentUpdatingBehavior,将 ListView 的父级添加到请求目标(不要忘记 #setOutputMarkupId()。

关于java - Wicket - 使用 AJAX 和 Wicket 模型更新 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12097060/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com