使用選擇而不是DropDownChoice來使用OPTGROUP。檢票口7 - 選擇,選擇選項和預設
Select<Role> roleInput = new Select<Role>("role", new PropertyModel<Role>(this,"selectedRole"));
角色的兩個列表是:
SelectOptions<Role> fedOptions = new SelectOptions<Role>("federazione",federationRoleList,new RoleRenderer());
SelectOptions<Role> eOptions = new SelectOptions<Role>("enti",eRoleList,new RoleRenderer());
其提交和也roleInput應用AjaxFormComponentUpdatingBehavior時運作良好,我有我的PropertyModel動態修改。
Unfortunally我有一個預先設定的一個問題。 我嘗試使用特定的角色設置selectedRole,但Select始終始於第一個列表的第一個元素。
DropDownChoice完美的作品預設置的模式,但沒有選擇。
我試着
roleInput.setModelObject(selectedRole);
,但它不工作。
我認爲這個問題是與此組件具有管理兩個或更多中繼器,而不是一個單獨的列表。
任何線索?
感謝
編輯: RoleRenderer
public class RoleRenderer implements IChoiceRenderer<Role>,Serializable{
private static final long serialVersionUID = 1L;
@Override
public Object getDisplayValue(Role object) {
return object.getName();
}
@Override
public String getIdValue(Role object, int index) {
return object.getId().toString();
}
@Override
public Role getObject(String id, IModel<? extends List<? extends Role>> choices) {
return getObjectFromId(id);
}
public Role getObjectFromId(String id){
return null;
};
}
注意的執行情況:getObjectFromId需要訪問管理器,以便將外overrided。
請問,你可以發佈你的RoleRenderer的實現嗎? –