我创建了一个列表视图,它将在表视图中显示记录数,并且列表视图内部包含一个文本字段和一个下拉选择字段。
我需要实现的是文本字段的 onchange 以默认下拉选项中特定记录的值。但是似乎在使用以下代码时,当它只有1条记录要更新时,它可以工作,但是当存在多条记录时,它会失败。需要帮忙!提前致谢。
示例代码:
new ListView("list", getItemList()) {
protected void populateItem(ListItem item) {
final Sl qv = (Sl) item.getModelObject();
item.setModel(new CompoundPropertyModel(qv));
ratio = new TextField("ratio");
item.add(ratio);
ratio.setOutputMarkupId(true);
ratio.add(new AjaxFormComponentUpdatingBehavior("onkeyup") {
@Override
protected void onUpdate(AjaxRequestTarget target) {
getProperties().put("rating" + Sl.getid(), "Strong");
target.addComponent(rating);
}
});
rating = new DropDownChoice("rating", getDdlmodels().get(item.getIndex()), ratingList);
item.add(rating);
rating.setOutputMarkupId(true);
}
}
注意:以 ValueMap 属性为键的 PropertyModel (DdlModels) 已用于获取和设置下拉选择的值。在文本字段的 onchange 中,propertyModel 已经更新,但是即使我添加了用于 ajax 刷新的下拉选项也没有被刷新/重新渲染。