Drop down menu 导叶下拉选择设置模式值

Drop down menu 导叶下拉选择设置模式值,drop-down-menu,wicket,wicket-1.5,Drop Down Menu,Wicket,Wicket 1.5,我有一个包含数据库内容的表(Dataview),其中每一行/对象都有一个“编辑”按钮。当我试图编辑对象时,DropDownChoice值(在表单中)没有正确更新(即使它在数据库中是正确的)。在DDC中设置的值是(排序的)列表“placeList”中的第一项,我显然希望从对象(event.getPlace().getName())中获得正确的值 以下是代码(wicket 1.5): List placesList=utguidenpplication.getInstance().getUgpSer

我有一个包含数据库内容的表(Dataview),其中每一行/对象都有一个“编辑”按钮。当我试图编辑对象时,DropDownChoice值(在表单中)没有正确更新(即使它在数据库中是正确的)。在DDC中设置的值是(排序的)列表“placeList”中的第一项,我显然希望从对象(event.getPlace().getName())中获得正确的值

以下是代码(wicket 1.5):

List placesList=utguidenpplication.getInstance().getUgpService().getAllPlaces();
Collections.sort(placesList);
DropDownChoice selectablePlaceField=新的DropDownChoice(“Sted”,新的PropertyModel(事件,“eventPlace.name”),
placesList,新精选者(“名称”);
添加(selectablePlaceField);
有人吗

干杯, 泰耶·艾顿,
挪威

我想你的模型有错误。您已经编写了
新的PropertyModel(event,“eventPlace.name”)
,其中包含作为模型的事件名称,但选项列表中包含位置。我认为使用新的PropertyModel(event,“eventPlace”)应该可以解决这个问题。

我认为您的模型中有一个错误。您已经编写了
新的PropertyModel(event,“eventPlace.name”)
,其中包含作为模型的事件名称,但选项列表中包含位置。我认为使用
新的PropertyModel(event,“eventPlace”)
应该可以解决这个问题。

感谢您的回答。事实上,我已经尝试了你的建议,但结果是一样的(ddc值是排序列表中的第一个)。@TerjeEithun-Hmm,也许还有其他问题?事件是否位于您的事件
null
?酒店是否有打字错误?在这些情况下,我认为第一选择也会显示出来。也许你也可以看看。我个人使用了很多下拉式选择,其中的方法,以及我的答案,对我来说都很好。你可能是对的,我只是不能发现错误。这是相关的标记:Sted:

`啊,我有另一个想法。Wicket使用equals()方法将选项与当前值匹配。你的
Place
类是否实现了equals()?宾果!就在那里。我实现了equals(),它马上就工作了。非常感谢你。我正要把头发扯下来。:)谢谢你的回答。事实上,我已经尝试了你的建议,但结果是一样的(ddc值是排序列表中的第一个)。@TerjeEithun-Hmm,也许还有其他问题?事件是否位于您的事件
null
?酒店是否有打字错误?在这些情况下,我认为第一选择也会显示出来。也许你也可以看看。我个人使用了很多下拉式选择,其中的方法,以及我的答案,对我来说都很好。你可能是对的,我只是不能发现错误。这是相关的标记:Sted:

`啊,我有另一个想法。Wicket使用equals()方法将选项与当前值匹配。你的
Place
类是否实现了equals()?宾果!就在那里。我实现了equals(),它马上就工作了。非常感谢你。我正要把头发扯下来。:)
    List<Place> placesList = UtGuidenApplication.getInstance().getUgpService().getAllPlaces();
    Collections.sort(placesList);

    DropDownChoice<Place> selectablePlaceField = new DropDownChoice<Place>("Sted", new PropertyModel<Place>(event, "eventPlace.name"),
            placesList, new ChoiceRenderer<Place>("name"));
    utguidenEventForm.add(selectablePlaceField);