0

can not pre-set value for combo box

asked 2010-05-09 12:43:47 +0800

vinhvo gravatar image vinhvo
369 3

Hi, I have very simple problem hope someone can help me .
My controller

package fi.uwasa.netmes.zkossController;

import java.util.List;
import java.util.Map;

import org.zkoss.zk.ui.event.CreateEvent;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zkplus.databind.AnnotateDataBinder;
import org.zkoss.zul.Window;

import fi.uwasa.netmes.bean.Site;
import fi.uwasa.netmes.bean.User;
import fi.uwasa.netmes.util.SpringUtil;

public class EditUserController extends Window  {
	private static final long serialVersionUID = 1L;
	private AnnotateDataBinder binder;
	private User user;
	private Site selectedSite;
	 
	public Map<String, Object> getCreationArgsMap(Event event) {
		CreateEvent ce = (CreateEvent) event;
		return ce.getArg();
	}
	public void onCreate(Event event) throws Exception {
		binder = (AnnotateDataBinder) this.getVariable("binder", false);
		Map<String, Object> args = getCreationArgsMap(event);
		this.setUser((User) args.get("user"));
		selectedSite=SpringUtil.getSiteService().getSites().get(0);
		binder.loadAll();
	}
	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}
	public List<Site> getAvailableSites()  {
		
		
		return SpringUtil.getSiteService().getSites();
	}
	public Site getSelectedSite() {
		return selectedSite;
	}
	public void setSelectedSite(Site selectedSite) {
		this.selectedSite = selectedSite;
	}

	
}

My zul :

<?page title="NetMES" contentType="text/html;charset=UTF-8"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" arg0="./editUserWin"?>

<window id="editUserWin" border="normal" title="Edit User" width="400px"
	height="350px" style="padding-top:30px"
	use="fi.uwasa.netmes.zkossController.EditUserController">
	<vbox style="padding-top:5%" width="100%" height="100%">
		<div align="center" style="float: center" >
			<grid width="100%" height="100%" >
				<rows>

					<row zclass="none" style="padding-top:5px">
						<div align="center" style="float: right">
							<label value="Email" id="lbEmail" />
						</div>
						<div align="center"
							style="float: left; padding-left:10px">
							<textbox id="tbEmail" value="@{editUserWin.selectedSite.name}"/>
						</div>
					</row>

				

					<row zclass="none" style="padding-top:5px">
						<div align="right" style="float: right">
							<label value="Site" id="lbSite" />
						</div>
						<div align="center"
							style="float: left; padding-left:10px">
							<combobox id="cbSite" model="@{editUserWin.availableSites}" selectedItem="@{editUserWin.selectedSite}">
								    <comboitem self="@{each=site}" label="@{site.name}" value="@{site}" />
							</combobox>
						</div>

					</row>

				</rows>
			</grid>
		</div>
	</vbox>
</window>


In the availableSites list there are many item. I just want to pre-set the value for the combo box. However , still the combo box does not display this value. I am sure that the binding were done correctly as the textbox show the correct value of the item i want to set.
can someone shed some light . Thank you.

delete flag offensive retag edit

2 Replies

Sort by ยป oldest newest

answered 2010-05-10 21:57:18 +0800

iantsai gravatar image iantsai
2755 1

A suggestion, you can take a look at "GenericForwardComposer" and rewrite your code in a better form.

link publish delete flag offensive edit

answered 2010-05-11 02:42:03 +0800

vinhvo gravatar image vinhvo
369 3

Thank you . I did rewrite it. And I found that I ahve to use event: public void onInitRenderLater$cbSite(Event e) {} to pre-set value for combo box.
Br.

link publish delete flag offensive edit
Your reply
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow

RSS

Stats

Asked: 2010-05-09 12:43:47 +0800

Seen: 542 times

Last updated: May 11 '10

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More