work 1:添加定区 定区即将取派员、分区和客户信息关联到一起
第一步:使用下拉框展示取派员数据,修改conbobox的url地址 发送请求
第二步:在staffAction中提供listajax方法 查询没有作废的取派员 返回json 数据
第三步:在staffService中提供方法查询没有作废的的取派员
第四步:在BaseDao中提供通用的查询条件
第五步:使用datagrid展示未关联到定区的分区数据,在subareaAction里提供listajax方法,查询未关联到定区的分区数据,返回json ,再为保存按钮绑定事件,提交添加定区表单,解决id名称冲突问题。最后在DecidedzoneAction里 提供add方法。
第六步:配置structs.xml文件
/**
* 查询没有作废的取派员,返回json
* @throws IOException
*/
public String listajax() throws IOException{
List<Staff> list = staffService.findListNotDelete();
String[] excludes = new String[]{"decidedzones"};
this.writeList2Json(list, excludes);
return NONE;
}
/**
* 查询没有作废的取派员,deltag为“0”
*/
public List<Staff> findListNotDelete() {
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Staff.class);
detachedCriteria.add(Restrictions.ne("deltag", "1"));
return staffDao.findByCriteria(detachedCriteria);
}
public List<T> findByCriteria(DetachedCriteria detachedCriteria) {
return this.getHibernateTemplate().findByCriteria(detachedCriteria);
}
public String listajax() throws IOException{
List<Subarea> list = subareaService.findListNotAssociation();
String[] excludes = new String[]{"decidedzone","region"};
this.writeList2Json(list, excludes );
return NONE;
}
/**
* 查询没有关联到定区的分区
*/
public List<Subarea> findListNotAssociation() {
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Subarea.class);
detachedCriteria.add(Restrictions.isNull("decidedzone"));
return subareaDao.findByCriteria(detachedCriteria );
}
// 接收分区id
private String[] subareaid;
public void setSubareaid(String[] subareaid) {
this.subareaid = subareaid;
}
/**
* 添加定区
*
* @return
*/
public String add() {
decidedzoneService.save(model, subareaid);
return "list";
}
/**
* 添加定区
*/
public void save(Decidedzone model, String[] subareaid) {
decidedzoneDao.save(model);
for (String sid : subareaid) {
Subarea subarea = subareaDao.findById(sid);//持久对象
//分区对象关联定区对象---多方关联一方
//UPDATE Subarea SET decidedzone = ? WHERE id = ?
subarea.setDecidedzone(model);
}
}
work 2:定区分页查询
页面修改datagrid的URL,在定区Action中提供分页查询方法。
work 3:定区关联客户
decidezone.jsp代码:
<body class="easyui-layout" style="visibility:hidden;">
<div region="center" border="false">
<table id="grid"></table>
</div>
<div region="south" border="false" style="height:150px">
<div id="tabs" fit="true" class="easyui-tabs">
<div title="关联分区" id="subArea"
style="width:100%;height:100%;overflow:hidden">
<table id="association_subarea"></table>
</div>
<div title="关联客户" id="customers"
style="width:100%;height:100%;overflow:hidden">
<table id="association_customer"></table>
</div>
</div>
</div>
<!-- 添加 修改分区 -->
<div class="easyui-window" title="定区添加修改" id="addDecidedzoneWindow" collapsible="false" minimizable="false" maximizable="false" style="top:20px;left:200px">
<div style="height:31px;overflow:hidden;" split="false" border="false" >
<div class="datagrid-toolbar">
<a id="save" icon="icon-save" href="#" class="easyui-linkbutton" plain="true" >保存</a>
<script type="text/javascript">
$(function(){
$("#save").click(function(){
var v = $("#addDecidedzoneForm").form("validate");
if(v){
$("#addDecidedzoneForm").submit();
}
});
});
</script>
</div>
</div>
<div style="overflow:auto;padding:5px;" border="false">
<form id="addDecidedzoneForm" action="${pageContext.request.contextPath }/decidedzoneAction_add.action"
method="post">
<table class="table-edit" width="80%" align="center">
<tr class="title">
<td colspan="2">定区信息</td>
</tr>
<tr>
<td>定区编码</td>
<td><input type="text" name="id" class="easyui-validatebox" required="true"/></td>
</tr>
<tr>
<td>定区名称</td>
<td><input type="text" name="name" class="easyui-validatebox" required="true"/></td>
</tr>
<tr>
<td>选择负责人</td>
<td>
<input class="easyui-combobox" name="staff.id"
data-options="valueField:'id',textField:'name',
url:'${pageContext.request.contextPath }/staffAction_listajax.action'" />
</td>
</tr>
<tr height="300">
<td valign="top">关联分区</td>
<td>
<table id="subareaGrid" class="easyui-datagrid"
border="false" style="width:300px;height:300px"
data-options="url:'${pageContext.request.contextPath }/subareaAction_listajax.action',
fitColumns:true,singleSelect:false">
<thead>
<tr>
<th data-options="field:'subareaid',width:30,checkbox:true">编号</th>
<th data-options="field:'addresskey',width:150">关键字</th>
<th data-options="field:'position',width:200,align:'right'">位置</th>
</tr>
</thead>
</table>
</td>
</tr>
</table>
</form>
</div>
</div>
<!-- 查询定区 -->
<div class="easyui-window" title="查询定区窗口" id="searchWindow" collapsible="false" minimizable="false" maximizable="false" style="top:20px;left:200px">
<div style="overflow:auto;padding:5px;" border="false">
<form>
<table class="table-edit" width="80%" align="center">
<tr class="title">
<td colspan="2">查询条件</td>
</tr>
<tr>
<td>定区编码</td>
<td><input type="text" name="id" class="easyui-validatebox" required="true"/></td>
</tr>
<tr>
<td>所属单位</td>
<td><input type="text" name="staff.station" class="easyui-validatebox" required="true"/></td>
</tr>
<tr>
<td colspan="2"><a id="btn" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-search'">查询</a> </td>
</tr>
</table>
</form>
</div>
</div>
<!-- 关联客户窗口 -->
<div class="easyui-window" title="关联客户窗口" modal="true" id="customerWindow" collapsible="false" closed="true" minimizable="false" maximizable="false" style="top:20px;left:200px;width: 400px;height: 300px;">
<div style="overflow:auto;padding:5px;" border="false">
<form id="customerForm" action="${pageContext.request.contextPath }/decidedzoneAction_assigncustomerstodecidedzone.action" method="post">
<table class="table-edit" width="80%" align="center">
<tr class="title">
<td colspan="3">关联客户</td>
</tr>
<tr>
<td>
<input type="hidden" name="id" id="customerDecidedZoneId" />
<select id="noassociationSelect" multiple="multiple" size="10"></select>
</td>
<td>
<input type="button" value="》》" id="toRight"><br/>
<input type="button" value="《《" id="toLeft">
<script type="text/javascript">
$(function(){
//为左右移动按钮绑定事件
$("#toRight").click(function(){
$("#associationSelect").append($("#noassociationSelect option:selected"));
});
$("#toLeft").click(function(){
$("#noassociationSelect").append($("#associationSelect option:selected"));
});
//为关联客户按钮绑定事件
$("#associationBtn").click(function(){
//在提交表单之前,选中右侧下拉框中所有的选项
$("#associationSelect option").attr("selected","selected");
//在提交表单之前设置隐藏域的值(定区id)
$("input[name=id]").val(id);
$("#customerForm").submit();
});
});
</script>
</td>
<td>
<select id="associationSelect" name="customerIds" multiple="multiple" size="10"></select>
</td>
</tr>
<tr>
<td colspan="3"><a id="associationBtn" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-save'">关联客户</a> </td>
</tr>
</table>
</form>
</div>
</div>
</body>