EXT+DWR+SPRING+IBATIS+ORACLE分页显示+模糊查询
EXT代码:
Ext.onReady(function(){ //页条数 var pageSize=13; // 创建checkbox var sm = new Ext.grid.CheckboxSelectionModel({ // 监听器 listeners : { selectionchange : function(sm) { if (sm.getCount()) { grid.passButton.enable(); grid.noPassButton.enable(); } else { grid.passButton.disable(); grid.noPassButton.disable(); } } } }); // 创建列模型 var cm = new Ext.grid.ColumnModel([ sm, { id:'torder_id', header:'电信工单编号', dataIndex:'TORDER_ID', width:0, sortable:true },{ header:'电信工单号', dataIndex:'TORDER_CODE', width:120, sortable:true },{ header:'套餐类型', dataIndex:'PACKAGE_TYPE', width:120, sortable:true },{ header:'金额', dataIndex:'MONEY', width:120, sortable:true },{ header:'开户区号', dataIndex:'AREA', width:120, sortable:true },{ header:'用户名称', dataIndex:'CUST_NAME', width:120, sortable:true },{ header:'用户标致码', dataIndex:'USER_FLAG', width:120, sortable:true },{ header:'E家通套餐识别码', dataIndex:'E_USER_FLAG', width:120, sortable:true },{ header:'性别', dataIndex:'SEX', width:120, sortable:true },{ header:'联系电话', dataIndex:'TELEPHONE', width:120, sortable:true },{ header:'身份证号', dataIndex:'IDCARD', width:120, sortable:true },{ header:'联系地址', dataIndex:'ADDRESS', width:120, sortable:true },{ header:'宽带账号', dataIndex:'WIDE_CODE', width:120, sortable:true },{ header:'宽带绑定电话', dataIndex:'WIDE_TELE', width:120, sortable:true },{ header:'经办人', dataIndex:'CREATOR', width:120, sortable:true },{ header:'创建时间', dataIndex:'CREATE_TIME', width:120, sortable:true }]); // 生成一个构造器 var dataRecords = Ext.data.Record.create([ { name:'TORDER_ID', type:'long' },{ name:'TORDER_CODE', type:'String' },{ name:'PACKAGE_TYPE', type:'String' },{ name:'MONEY', type:'String' },{ name:'AREA', type:'String' },{ name:'CUST_NAME', type:'String' },{ name:'USER_FLAG', type:'String' },{ name:'SEX', type:'String' },{ name:'TELEPHONE', type:'String' },{ name:'IDCARD', type:'String' },{ name:'ADDRESS', type:'String' },{ name:'WIDE_CODE', type:'String' },{ name:'WIDE_TELE', type:'String' },{ name:'CREATOR', type:'String' },{ name:'CREATE_TIME', type:'String' }]); // Store对象将使用配置 的DataProxy的实现类来加载数据 var store = new Ext.data.Store({ proxy : new Ext.data.DWRProxy(keyMgr.findNewTOrder, true), reader : new Ext.data.ListRangeReader({ totalProperty : 'totalSize', root : 'data', id : 'torder_id' }, dataRecords) //remoteSort : true }); // 创建grid窗体 var grid = new Ext.grid.GridPanel({ store : store, loadMask : { msg : '数据加载中...' }, sm : sm, cm : cm, height : 400, width : 760, frame : true, autoExpandMax :true,//自动扩展列宽度width : 800, tbar:[ { id: 'keyword', xtype:'textfield', x:0, emptyText:'请输入条件后按enter', style:'width:120px;' } ], bbar : new Ext.PagingToolbar({ pageSize : pageSize, store : store, displayInfo : true, emptyMsg :'没有记录', displayMsg :'显示{0}-{1}条 共{2}条', plugins : new Ext.ux.ProgressBarPager() }) }); var keyword=""; grid.render('com-div'); store.baseParams.keyword=keyword; store.load({ params : { start : 0, limit : pageSize, keyword:keyword } }); var keywordObj=window.document.getElementById('keyword'); keywordObj.οnkeydοwn=function(){ if(window.event.keyCode=='13'){ keyword = keywordObj.value; if(keyword.length < 1){ Ext.MessageBox.alert("status","关键字不能为空! "); return; } store.baseParams =[{}]; store.baseParams.keyword = keyword; store.reload({params:{start:0,limit:pageSize,keyword:keyword}}); } } });
SERVICE实现:
public ListRange findNewTOrder(Map<String, String> map) {
List list=null;
list=this.keyMgrDao.findNewTOrderDao(map);
return new ListRange(list.toArray(),this.keyMgrDao.findNewTOrderTotalDao(map));
}
DAO实现:
public List findNewTOrderDao(Map<String, String> map) {
Map m=new HashMap();
Long start=null;
Long end=null;
Long limit=null;
limit=new Long(map.get("limit"));
start=new Long(map.get("start"));
end=start+limit;
System.out.println("limit:"+limit);
System.out.println("start:"+start);
m.put("start", start);
m.put("end", end);
m.put("keyword", map.get("keyword").toString());
return this.getSqlMapClientTemplate().queryForList("telecom_order.findNewTOrderSql",m);
}
public String findNewTOrderTotalDao(Map<String, String> map) {
String str="0";
List list=null;
list=this.getSqlMapClientTemplate().queryForList("telecom_order.findNewTOrderTotalSql",map);
if(list!=null&&list.size()>0){
Map m=new HashMap();
m=(Map)list.get(0);
str=m.get("COUNT").toString();
}
System.out.println("total:" + str);
return str;
}
IBATIS SQL:
<!--根据条件查找电信新KEY工单 -->
<select id="findNewTOrderSql" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
<![CDATA[
select *
from (select row_.*, rownum rownum_
from (
select t.torder_id,t.TORDER_CODE,t.PACKAGE_TYPE,t.MONEY,t.AREA,t.CUST_NAME,t.USER_FLAG,(case when t.SEX=1 then '男' else '女' end) as SEX,t.TELEPHONE,t.IDCARD,t.ADDRESS,t.WIDE_CODE,t.WIDE_TELE,t.CREATOR,to_char(t.CREATE_TIME,'yyyy-mm-dd hh24:mi:ss') as CREATE_TIME from TELECOM_ORDER t
where t.ORDER_TYPE_ID=1 and t.STATUS=1
and t.TORDER_ID||t.PACKAGE_TYPE||t.TORDER_CODE||t.MONEY||t.AREA||t.CUST_NAME||t.USER_FLAG||t.E_USER_FLAG||t.SEX||t.TELEPHONE||t.IDCARD||t.ADDRESS||t.WIDE_CODE||t.WIDE_TELE||t.CREATOR||t.CREATE_TIME like '%$keyword$%'
) row_
where rownum <= #end#)
where rownum_ > #start#
]]>
</select>
<!--根据条件查找电信新KEY工单总数 -->
<select id="findNewTOrderTotalSql" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
select count(1) as count from TELECOM_ORDER t where t.ORDER_TYPE_ID=1 and t.STATUS=1
and t.TORDER_ID||t.PACKAGE_TYPE||t.TORDER_CODE||t.MONEY||t.AREA||t.CUST_NAME||t.USER_FLAG||t.E_USER_FLAG||t.SEX||t.TELEPHONE||t.IDCARD||t.ADDRESS||t.WIDE_CODE||t.WIDE_TELE||t.CREATOR||t.CREATE_TIME like '%$keyword$%'
</select>
dwr+spring配置简单,就不贴上来了 。
关注微信公众号福利!!!
回复关键字「666」获取一份最新 Java 架构资料,你要的都有!
回复关键字「Java」获取JVM, 多线程等Java技术系列教程;
回复关键字「spring」获取Spring, Spring Boot, Spring Cloud教程;
回复关键字「架构」获取分布式、微服务、架构、高并发等系列干货;
回复关键字「面试」获取各种 Java 面试题及答案、面试实战经验;