前台代码
<script type="text/javascript" src="<%=path%>/extjs/UserControl/PageComboResizer.js"></script>
引用分页js
<%=jsjx.smart.web.controller.HomeController.extModel("TUDevInfo", "TUDevInfoModel", "createtime,lastopertime")%>
var pageSize = 100;//定义每页数据量
var storeUDevInfo = Ext.create('Ext.data.Store', {
autoLoad: true,
model: 'TUDevInfoModel',
pageSize: pageSize,
folderSort: false,
proxy: {
type: 'ajax',
url: 'TUDev/loadDevList',
reader: {
type: 'json',
rootProperty: 'data',
totalProperty: 'total'
}
},
listeners: {
beforeload: function (store, options) {
var params = {
udevid: textDev.getValue(),
UDevCatCode: uDevCatCode.getValue(),
AreaCode: _AreaCode
};
Ext.apply(store.proxy.extraParams, params);
}
}
});
var pagingToolbar = new Ext.PagingToolbar({//新建分页工具栏
pageSize: pageSize,
store: storeUDevInfo,
displayInfo: true,
displayMsg: '显示第{0}—{1}条记录,共{2}条记录',
emptyMsg: '没有记录',
plugins: [Ext.create('Ext.ux.PageComboResizer')]
});
var smUDevInfo = Ext.create('Ext.selection.CheckboxModel', {mode: 'single'});
var _EmpID = '';
var gridUDevInfo = Ext.create('Ext.grid.Panel', {
region: 'center',
columnLines: true,
preventHeader: true,
width: "80%",
height: "100%",
store: storeUDevInfo,
selModel: smUDevInfo,
dockedItems: [tbarUDevInfo],
bbar: pagingToolbar,
defaults: {titleAlign: 'center'},
columns: [
Ext.create('Ext.grid.RowNumberer', {text: '行号', width: 50}),
// { header: '设备ID', dataIndex: 'udevid', align: 'center',width:100 },
{header: '设备名称', dataIndex: 'udevname', align: 'center', width: 100},
{header: '类别图标', dataIndex: 'url', align: 'center', width: 80, renderer: Tubiao},
{header: '备注', dataIndex: 'note', align: 'center', width:120}
],
viewConfig: {
enableTextSelection: true
}
});
后台代码
@RequestMapping("/loadDevList")
public void loadDevList(String AreaCode, String UDevCatCode, String udevid, HttpServletRequest request,HttpServletResponse response, HttpSession session) {
if (!Print.CheckPermisson("", session, response)) return;
if (StringUtils.isNotBlank(AreaCode)) {
AreaCode = loadTreeAreaByAreaCode(AreaCode);
}
AtomicReference<Long> Count = new AtomicReference<>();
Integer page = Integer.parseInt(request.getParameter("page"));
Integer limit = Integer.parseInt(request.getParameter("limit"));
List<Map<String, Object>> list = tuDevService.loadDevList(AreaCode, UDevCatCode, udevid,page,limit,Count);
Print print = new Print();
Json json = new Json();
json.setData(list);
json.setSuccess(true);
json.setTotal(Count.get());//总数量必须填
print.WriteJson(response, json);
}
@Override
public List<Map<String, Object>> loadDevList(String AreaCode, String UDevCatCode, String udevid, Integer start, Integer limit, AtomicReference<Long> Count) {
PageHelper.startPage(start, limit, true);
String sql = "select A.UDevID, A.UDevName,A.UDevCatCode,C.Url, A.UDevCatName, A.AreaCode,B.AreaName, A.PointX, A.PointY, A.IsStop, A.Note, " +
"A.MainUDevAttrID ,D.AttrName MainUDevAttrName,A.ControlType from TUDevInfo A left join TBaseArea B on A.AreaCode = B.AreaCode left join TUDevCategory C on A.UDevCatCode = C.UDevCatCode" +
" left join TUDevInfoAttribute D on A.MainUDevAttrID=D.UDevAttrID" +
" where 1=1 ";
if (StringUtils.isNotBlank(AreaCode)) {
sql = sql + " and A.AreaCode in (" + AreaCode + ")";
}
if (StringUtils.isNotBlank(UDevCatCode)) {
sql += "and (A.UDevCatCode ='" + UDevCatCode + "' or A.UDevCatName='" + UDevCatCode + "') ";
}
if (StringUtils.isNotBlank(udevid)) {
sql += "and (A.UDevName like '%" + udevid + "%') ";
}
sql += "order by A.UDevID ";
List<Map<String, Object>> list= sqlMapper.findList(sql.toLowerCase());
PageInfo<Map<String, Object>> page = new PageInfo<>(list);
Count.set(page.getTotal());
return page.getList();
}