您的位置:首页 > 其它

<z:select>级联操作

2016-07-07 16:31 309 查看
在做项目的时候,碰到了级联操作问题,由于对公司所用东西不熟悉,导致两次都浪费不少时间,这次记录一下,以备查阅

1.首先我把前台页面粘贴过来,我要通过餐馆来控制所在区域,因此在餐馆下拉框中添加了onChange事件

<tr height="30">
<td>@{Orderplugin.Restaurant.RestaurantName} : </td>
<td>
 <z:select name="RestaurantCode" id="RestaurantCode"
verify="Int&&NotNull" value="${RestaurantCode}"
style="width:143px" onChange="initBelongArea(this.value)"
method="Dish.getRestaurantCodeOptions" defaultBlank="true">
</z:select>
</td>

</tr>

<tr>
<td>@{Orderplugin.Restaurant.BelongArea} : </td>
<td>
 <z:select name="BranchInnerCode" id="BranchInnerCode"
verify="NotNull" value="${BranchInnerCode}"
style="width:143px"
method="Dish.getBranchInnerCodeOptions" defaultBlank="true">
 </z:select>
  
</td>    

</tr>

2.onChange事件代码

<script type="text/javascript">

   function initBelongArea(value){   
  Selector.setParam("BranchInnerCode","RestaurantCode",value); //设置Selector的某参数值

  Selector.loadData("BranchInnerCode"); 

   }

</script>

3.接下来就是后台方法

@Priv(DishPriv.MenuID)
public DataTable getBranchInnerCodeOptions() {
String restaurantCode=$V("RestaurantCode");
Q q=new Q("select RestaurantName from ZDRestaurant where RestaurantCode=?",restaurantCode);
DataTable dt=q.executeDataTable();
List<String> codes=new ArrayList<String>();
if(dt.getRowCount()>0){
String restaurantName=dt.getString(0, 0);
q=new Q("select BranchInnerCode from ZDRestaurant where RestaurantName=?",restaurantName);
dt=q.executeDataTable();
if(dt.getRowCount()>0){

for(int i=0;i<dt.getRowCount();i++){
codes.add(dt.getString(i, 0));
}
}
}
return new Q("select BranchInnerCode,Name from ZDBranch").where().in("BranchInnerCode", codes).fetch();
}

另外:以后碰到问题,先去官网知识库中去找答案,官网网址:zving.com

进到开发者中心进行查阅
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: