Hello,

You should use a DropDownChoice<Account> and use the constructor that takes an IChoiceRenderer<Account> which allows you to define:
1. the text that is output for the account
2. the value that is output in the html for the account. This would be the place to pull out the long.

I think the problem with your code is how the selected account is fetched. It looks to me like you are using the value of selectedAccount within the constructor.

Since the data backing the value doesn't exist until render time it is always null; and causes the drop down to show "Choose One".

You should wrap the getDefaultAccount() method with an IModel<Account> implementation so that it can return the model value at render time.

One method for cases like this if you are using Spring is to inject the accountsService bean using @SpringBean and then get account list using a method like: List<Accounts>getAccountsForUser(...). You set the possibilities of the drop down to be the List<Accounts> and you set the current account to be the first item from the list.

Regards,

Mike


No, it does not appear to be working
I have an Account object, but for the dropdown display I am just
extracting a list of Long values. Is that the correct thing to do?
The accountList v accountsList is just a typing error in the email



On Wed, Sep 1, 2010 at 2:26 PM, Sven Meier [via Apache Wicket]
<[email protected]>  wrote:
Should be working fine.

Are you sure you're showing the actual code, i.e. accountList vs
accountsList ?

BTW are you accounts really just represented as Longs?

Regards

Sven

On 09/01/2010 01:15 PM, drf wrote:
I am having a problem that my DropDownChoice is not selecting the item I
expect, only "Choose one". Here is the code:
...
private List<Long>    accountList = new ArrayList<Long>();
private Long selectedAccount;

public AccountsDropDownChoice(String id, final Component component) {
     super(id);
     initializeAccounts();
     selectedAccount = getDefaultAccount();

     final DropDownChoice<Long>    dropDown = new
DropDownChoice<Long>("accountsDropDown",

new PropertyModel(this, "selectedAccount"),

accountsList) {

     }

The value selectedAccount is being updated correctly when an item in the
dropdown is selected, but the dropdown is not defaulting to the value in
that field to begin with. If anyone can help it is very appreciated.

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]



________________________________
View message @
http://apache-wicket.1842946.n4.nabble.com/DropDownChoice-how-to-select-default-item-tp2402960p2402968.html
To unsubscribe from DropDownChoice - how to select default item, click here.



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to