[ZK框架]将Listbox伪装成下拉框

第一种情况:从某张表中获取字段,动态加载Listbox。即Listbox中的内容为该字段下内容,可随表格变化动态变化。

Java代码:

		//初始化Listbox
		private void initListbox() {
			//HQL语言,从类User对应的t_user表中获取字段name,即从用户表中查找用户类型为VIP的用户记录
			String hql = "from User where type='VIP'";
			//用userService中的getInfos方法获取记录的集合,用List存储
			List users = userService.getInfos(hql);
			List strs = new ArrayList();
			if(users!=null &&users.size()>0){
				for (User user : users) {//遍历users,即查找出的记录
					strs.add(users.getName());//将用户名存入List
				}
			}
			myListbox.setModel(new ListModelList(strs));//将获取的所有名字都存入Listbox
			// 设置默认显示内容
			for (int i = 0; i < strs.size(); i++) {
				Listitem li = new Listitem(strs.get(i));//为每个名字都声明一个Listitem
				li.setParent(myListbox);
				if (test.getUserName() == null) {//当前类的实例test
					if (i == 0) {// 若当前状态为新增,设置默认显示值为第一个用户
						myListbox.setSelectedItem(li);//设置显示下标为0的用户
					}
				} else {// 若当前状态为修改
					if (test.getUserName().equals(strs.get(i))) {
						myListbox.setSelectedItem(li);//设置显示test的用户名
					}
				}
			}
		}

第二种情况:在ZK中对Listbox声明并定义完全,不可以在Java代码中对显示的内容的条目数或内容进行修改。

ZK代码:

		
			
			
		

Java代码:

	//初始化typeList
	private void setType() {
		List items=	typeList.getItems();//获取typeList中所有Listitem,存入List 
		for(Listitem item:items){//遍历List,即typeList中所有条目
			if(dept.getType().toString().equals(item.getValue().toString())){//若当前类的实例dept中的type字段的内容与条目中某个值相同
				typeList.setSelectedItem(item);//设置该相同项为当前显示项
			}//若不相同,则默认显示控件中设置的“门诊”
		}
	}

1.mold="select“,listbox模式为选择。 
2.width="185px",listbox宽度为185px。
3.height="25px",listbox高度为25px。
4.style="float:left;margin-left:5px;margin-top:0px",listbox风格为左对齐,外边框距离左边控件外边框5px,外边框距离上方控件外边框0px。
5.value="门诊",listitem属性为门诊。
6.label="门诊",listitem显示内容为门诊。
7.selected="true",listitem默认显示“门诊”。

你可能感兴趣的:(Java)