如何获取easy-ui的表格的分页大小

发布于:2025-09-04 ⋅ 阅读:(20) ⋅ 点赞:(0)

关键代码

// 页面加载时初始化表格(只执行一次)
        $(function() {
            // 初始化表格配置
            $('#dgList').datagrid({
                url: 'TMSMST0810/queryList',
                loadMsg: '数据加载中,请稍候...',
                striped: true,
                pagination: true,  // 启用分页
                pageSize: 100,     // 默认每页条数
                pageNumber: 1,     // 默认页码
                pageList: [50, 100, 200], // 可选每页条数
                onLoadSuccess: function (result) {
                    if (result.resultFlg === 'success') {
                        // 加载数据(如果后端返回的不是标准格式,需要手动设置)
                        $(this).datagrid('loadData', {
                            total: result.total,
                            rows: result.rows
                        });
                    }
                },
                onLoadError: function () {
                    console.log("数据加载失败!");
                    alertMsgDefaultTitle("TMS系统异常!请稍后再试!", "error");
                }
            });

            // 获取分页控件并绑定事件(关键)
            var pager = $('#dgList').datagrid('getPager');
            pager.pagination({
                // 页码切换时触发(下一页/上一页/直接输入页码)
                onSelectPage: function(pageNum, pageSize) {
                    searchKilometersInfo(pageNum, pageSize);
                },
                // 刷新按钮点击时触发
                onRefresh: function(pageNum, pageSize) {
                    searchKilometersInfo(pageNum, pageSize);
                },
                // 切换每页条数时触发
                onChangePageSize: function(pageSize) {
                    // 切换每页条数后从第1页开始
                    searchKilometersInfo(1, pageSize);
                }
            });
            // 初始加载第一页数据
            searchKilometersInfo(1, 100);
        });

        // 查询函数:只负责加载数据,不重复初始化表格
        function searchKilometersInfo(pageNum, pageSize) {
            var kilometersInfoBo = {
                startLocationCode: $('#startLocationCode').val(),
                targetLocationCode: $('#targetLocationCode').val(),
                pageNum: pageNum || 1,
                pageSize: pageSize || 100
            };

            // 调用reload方法刷新数据(使用已初始化的表格)
            $('#dgList').datagrid('reload', kilometersInfoBo);
        }

完整代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!DOCTYPE html>
<html>
<head>
    <title>距离主档</title>
    <jsp:include page="../_template/head.jsp"></jsp:include>
    <script type="text/javascript" lang="javascript">
        function SetWinHeight() {
            var cHeight = $('div.tabs-panels', window.parent.document).height();
            var tHeight = $('#ToolBar').height();
            var pHeight = $('#PageHeader').height();
            var dgHeight = cHeight - tHeight - pHeight;
            $('#dgList').datagrid('resize', {
                height: dgHeight - 15
            });
        }
        $(window).resize(function () {
            SetWinHeight();
        });
        function searchKiloMetersInfo() {

        }

        function newKieleMetersInfo() {
            alert("新增");
            $.ajax({
                url: 'TMSPROC0050/deleteData?accidentIds=' + accidentIds.join(','),
                type: 'DELETE',
                dataType: 'json',
                success: function (result) {
                    $('#accidentGrid').datagrid('reload');
                    $.messager.show({
                        title: '成功',
                        msg: result.message
                    })
                },
                error: function (result) {
                    $.messager.alert({
                        title: '失败',
                        msg: result.message
                    })
                }
            })
        }

        function updKielMetersInfo() {
            alert("修改");
            $.ajax({
                url: 'TMSPROC0050/deleteData?accidentIds=' + accidentIds.join(','),
                type: 'DELETE',
                dataType: 'json',
                success: function (result) {
                    $('#accidentGrid').datagrid('reload');
                    $.messager.show({
                        title: '成功',
                        msg: result.message
                    })
                },
                error: function (result) {
                    $.messager.alert({
                        title: '失败',
                        msg: result.message
                    })
                }
            })
        }

        function delKieleMetersInfo() {
            alert("删除");
            $.ajax({
                url: 'TMSPROC0050/deleteData?accidentIds=' + accidentIds.join(','),
                type: 'DELETE',
                dataType: 'json',
                success: function (result) {
                    $('#accidentGrid').datagrid('reload');
                    $.messager.show({
                        title: '成功',
                        msg: result.messages
                    })
                },
                error: function (result) {
                    $.messager.alert({
                        title: '失败',
                        msg: result.message
                    })
                }
            })
        }

        // 页面加载时初始化表格(只执行一次)
        $(function() {
            // 初始化表格配置
            $('#dgList').datagrid({
                url: 'TMSMST0810/queryList',
                loadMsg: '数据加载中,请稍候...',
                striped: true,
                pagination: true,  // 启用分页
                pageSize: 100,     // 默认每页条数
                pageNumber: 1,     // 默认页码
                pageList: [50, 100, 200], // 可选每页条数
                onLoadSuccess: function (result) {
                    if (result.resultFlg === 'success') {
                        // 加载数据(如果后端返回的不是标准格式,需要手动设置)
                        $(this).datagrid('loadData', {
                            total: result.total,
                            rows: result.rows
                        });
                    }
                },
                onLoadError: function () {
                    console.log("数据加载失败!");
                    alertMsgDefaultTitle("TMS系统异常!请稍后再试!", "error");
                }
            });

            // 获取分页控件并绑定事件(关键)
            var pager = $('#dgList').datagrid('getPager');
            pager.pagination({
                // 页码切换时触发(下一页/上一页/直接输入页码)
                onSelectPage: function(pageNum, pageSize) {
                    searchKilometersInfo(pageNum, pageSize);
                },
                // 刷新按钮点击时触发
                onRefresh: function(pageNum, pageSize) {
                    searchKilometersInfo(pageNum, pageSize);
                },
                // 切换每页条数时触发
                onChangePageSize: function(pageSize) {
                    // 切换每页条数后从第1页开始
                    searchKilometersInfo(1, pageSize);
                }
            });
            // 初始加载第一页数据
            searchKilometersInfo(1, 100);
        });

        // 查询函数:只负责加载数据,不重复初始化表格
        function searchKilometersInfo(pageNum, pageSize) {
            var kilometersInfoBo = {
                startLocationCode: $('#startLocationCode').val(),
                targetLocationCode: $('#targetLocationCode').val(),
                pageNum: pageNum || 1,
                pageSize: pageSize || 100
            };

            // 调用reload方法刷新数据(使用已初始化的表格)
            $('#dgList').datagrid('reload', kilometersInfoBo);
        }
    </script>
</head>
<body>
<div id="ToolBar" class="panel-header" style="padding:1px;">
    <a href="javascript:void(0)" class="easyui-linkbutton"
       iconCls="icon-add" plain="true" onclick="newKieleMetersInfo()">新增</a> <a
        href="javascript:void(0)" class="easyui-linkbutton"
        iconCls="icon-edit" plain="true" onclick="updKielMetersInfo()">修改</a>
    <a href="javascript:void(0)" class="easyui-linkbutton"
       iconCls="icon-remove" plain="true" onclick="delKieleMetersInfo()">删除</a>
    <%--    <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-excel" plain="true" onclick="exportExcel()">导出EXCEL</a>--%>
</div>
<div style="width:100%;"></div>
<div id="PageHeader" class="easyui-panel" style="overflow: hidden; width: 100%; padding: 0px;">
    <table  style="width: 100%;heignt:95%">
        <tr>
            <td style="width: 80px">出发点代码:</td>
            <td style="width:90px"><input class="easyui-textbox"
                                          id="startLocationCode" style="width:100px"
                                          data-options="prompt:'请选择出发点',
                    icons:[{iconCls:'icon-search',handler:searchKilometersInfo}]"></td>
            <td style="width:90px"><input class="easyui-textbox"
                                          id="startLocationName" style="width:100px"
                                          data-options="prompt:'出发点名称',"></td>
            <td style="width: 80px;">目的地代码:</td>
            <td style="width:90px"><input class="easyui-textbox"
                                          id="targetLocationCode" style="width:100px"
                                          data-options="prompt:'请选择目的地',
                    icons:[{iconCls:'icon-search',handler:searchKilometersInfo}]"></td>
            <td style="width:90px"><input class="easyui-textbox"
                                          id="targetLocationName" style="width:100px"
                                          data-options="prompt:'目的地名称',"></td>
            <td align="right"><a href="javascript:void(0)"
                                 class="easyui-linkbutton" data-options="iconCls:'icon-search'"
                                 onclick="searchKilometersInfo();">检索</a></td>
        </tr>
    </table>
</div>

<%--<table id="dgList" class="easyui-datagrid"--%>
<%--       style="width: 100%; height: 720px;"--%>
<%--       data-options="--%>
<%--               singleSelect: true,--%>
<%--               rownumbers: true,--%>
<%--               fitColumns: true,--%>
<%--               pagination: true,--%>
<%--               pageSize: 20,--%>
<%--               pageNumber: 1,--%>
<%--               pageList: [20, 50, 100]--%>
<%--           ">--%>
<table id="dgList" class="easyui-datagrid" style="width:100%;height:720px;" pagination="true" pageSize="100"
       autoRowHeight="false" rownumbers="true" fitColumns="true" singleSelect="true" >
    <thead>
    <tr>
        <!-- 在data-options中添加hidden:true -->
        <th data-options="field:'id',hidden:true">编号</th>
        <th data-options="field:'selecteds',width:120,halign:'center',checkbox:true">选择</th>
        <th data-options="field:'startlocationcode',width:80">出发点代码</th>
        <th data-options="field:'startlocationname',width:80">出发点名称</th>
        <th data-options="field:'targetlocationcode',width:80">目的地代码</th>
        <th data-options="field:'targetlocationname',width:80">目的地名称</th>
        <th data-options="field:'distance',width:80">距离</th>
        <th data-options="field:'createtime',width:80">备注</th>
        <th data-options="field:'updatetime',width:80">更新时间</th>
        <th data-options="field:'updateuser',width:80">更新人</th>
    </tr>

</table>
</body>

后端接收

controller

package app.controller.master;

import app.commons.fw.springMvc.ControllerBase;
import app.model.master.KilometersInfoBo;
import app.model.master.Kilometersinfo;
import app.service.master.KilometersInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.Map;

/**
 * ClassName:DistanceInfo
 * Package:app.controller.master
 * DESCRIPTION:
 *
 * @Author zzc
 * @Create 2025/9/2 11:16
 * @Version
 */
@Controller
public class KilometersInfo extends ControllerBase {

    @Autowired
    private KilometersInfoService kilometersInfoService;

    @RequestMapping(value = "/TMSMST0180/show")
    public String _jsp() {
        return "master/TMSMST0180";
    }
    @ResponseBody
    @RequestMapping(value = "/TMSMST0810/queryList", method = RequestMethod.POST)
    public Map<String, Object> queryList( KilometersInfoBo kilometersInfoBo) {
        return kilometersInfoService.selKilometersInfo(kilometersInfoBo, getLoginObject());
    }
    @ResponseBody
    @RequestMapping(value = "/TMSMST0180/addDistance")
    public Map<String, Object> addDistance(Kilometersinfo kilometersInfo) {
        return kilometersInfoService.addKilometersInfo(kilometersInfo, getLoginObject());
    }

    @ResponseBody
    @RequestMapping(value = "/TMSMST0180/deleteDistance")
    public Map<String, Object> deleteDistance(Kilometersinfo kilometersInfo) {
        return kilometersInfoService.updateKilometersInfo(kilometersInfo, getLoginObject());
    }

    @ResponseBody
    @RequestMapping(value = "/TMSMST0180/updateDistance")
    public Map<String, Object> updateDistance(String kilometersInfoId) {
        return kilometersInfoService.deleteKilometersInfo(kilometersInfoId);
    }
}

service

public interface KilometersInfoService {
    //查询数据
    Map<String, Object> selKilometersInfo(KilometersInfoBo kilometersInfoBo, UserValueObject uvo);
    //新增数据
    Map<String, Object> addKilometersInfo(Kilometersinfo kilometersInfo, UserValueObject uvo);
    //修改数据
    Map<String, Object> updateKilometersInfo(Kilometersinfo kilometersInfo, UserValueObject uvo);
    //删除数据
    Map<String, Object> deleteKilometersInfo(String kilometersInfoId);
}

serviceImpl

package app.service.master;

import app.commons.constants.Constants;
import app.commons.uvo.UserValueObject;
import app.controller.master.KilometersInfo;
import app.mapper.master.KilometersInfoMapper;
import app.model.master.KilometersInfoBo;
import app.model.master.Kilometersinfo;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * ClassName:KilometersInfoServiceImpl
 * Package:app.service.master
 * DESCRIPTION:
 *
 * @Author zzc
 * @Create 2025/9/2 14:32
 * @Version
 */
@Service
public class KilometersInfoServiceImpl implements KilometersInfoService{

    @Autowired
    private KilometersInfoMapper kilometersInfoMapper;

    @Override
    public Map<String, Object> selKilometersInfo(KilometersInfoBo kilometersInfoBo, UserValueObject loginObject) {
        Map<String, Object> result = new HashMap<>();
        try{
            List<Kilometersinfo> kilometersInfos = kilometersInfoMapper.selKilometersInfo(kilometersInfoBo, loginObject.getOwnerID(), loginObject.getProjectCode());
            if(CollectionUtils.isNotEmpty(kilometersInfos) ){
                result.put(Constants.RESULT_FLG, Constants.SUCCESS);
                result.put(Constants.ROWS, kilometersInfos);
                result.put(Constants.MESSAGES, "查询成功");
                result.put(Constants.TOTAL, kilometersInfos.get(0).getTotal());
            }else{
                result.put(Constants.RESULT_FLG, Constants.SUCCESS);
                result.put(Constants.ROWS, kilometersInfos);
                result.put(Constants.MESSAGES, "查询成功");
                result.put(Constants.TOTAL, 0);
            }

        }catch(Exception e){
            e.printStackTrace();
            result.put(Constants.MESSAGES, e.getMessage());
            result.put(Constants.RESULT_FLG, Constants.FAILURE);
        }
        return result;
    }

    @Override
    public Map<String, Object> addKilometersInfo(Kilometersinfo kilometersInfo, UserValueObject loginObject) {
        Map<String, Object> result = new HashMap<>();
        try{
            kilometersInfo.setOwnerid(loginObject.getOwnerID());
            kilometersInfo.setProjectcode(loginObject.getProjectCode());
            boolean b = kilometersInfoMapper.addKilometersInfo(kilometersInfo);
            if(b){
                result.put(Constants.RESULT_FLG, Constants.SUCCESS);
            }else{
                result.put(Constants.MESSAGES, "添加0条数据");
                result.put(Constants.RESULT_FLG, Constants.FAILURE);
            }
        }catch (Exception e){
            e.printStackTrace();
            result.put(Constants.MESSAGES, e.getMessage());
            result.put(Constants.RESULT_FLG, Constants.FAILURE);
        }
        return result;
    }

    @Override
    public Map<String, Object> updateKilometersInfo(Kilometersinfo kilometersInfo, UserValueObject loginObject) {
        Map<String, Object> result = new HashMap<>();
        try{
            kilometersInfo.setOwnerid(loginObject.getOwnerID());
            kilometersInfo.setProjectcode(loginObject.getProjectCode());
            Integer integer = kilometersInfoMapper.updateKilometersInfo(kilometersInfo);
            if(integer == 1){
                result.put(Constants.RESULT_FLG, Constants.SUCCESS);
            }else {
                result.put(Constants.MESSAGES, "更新0条数据");
                result.put(Constants.RESULT_FLG, Constants.FAILURE);
            }
        }catch (Exception e){
            e.printStackTrace();
            result.put(Constants.MESSAGES, e.getMessage());
            result.put(Constants.RESULT_FLG, Constants.FAILURE);
        }
        return result;
    }

    @Override
    public Map<String, Object> deleteKilometersInfo(String kilometersInfoId) {
        Map<String, Object> result = new HashMap<>();
        try{
            Integer integer = kilometersInfoMapper.deleteKilometersInfo(Long.valueOf(kilometersInfoId));
            if(integer == 1){
                result.put(Constants.RESULT_FLG, Constants.SUCCESS);
            }else {
                result.put(Constants.MESSAGES, "删除0条数据");
                result.put(Constants.RESULT_FLG, Constants.FAILURE);
            }
        }catch (Exception e){
            e.printStackTrace();
            result.put(Constants.MESSAGES, e.getMessage());
            result.put(Constants.RESULT_FLG, Constants.FAILURE);
        }

        return Collections.emptyMap();
    }
}

mapper

package app.mapper.master;

import app.controller.master.KilometersInfo;
import app.model.master.KilometersInfoBo;
import app.model.master.Kilometersinfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * ClassName:KilometersInfoMapper
 * Package:app.mapper.master
 * DESCRIPTION:
 *
 * @Author zzc
 * @Create 2025/9/2 14:32
 * @Version
 */
@Mapper
public interface KilometersInfoMapper {

    // 查询所有
    List<Kilometersinfo> selKilometersInfo(@Param("kilometersInfoBo")KilometersInfoBo kilometersInfoBo,
                                           @Param("ownerid")String ownerid,
                                           @Param("projectcode")String projectcode);
    // 添加
    boolean addKilometersInfo(@Param("kilometersInfo") Kilometersinfo kilometersInfo);
    // 修改
    Integer updateKilometersInfo(@Param("kilometersInfo")Kilometersinfo kilometersInfo);
    // 删除
    Integer deleteKilometersInfo(@Param("kilometersInfoId")Long kilometersInfoId);

}

xml(oracle的分页)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="app.mapper.master.KilometersInfoMapper">
    <insert id="addKilometersInfo">
        insert into kilometersinfo (ownerid, projectcode, id, startLocationCode, targetLocationCode, startLocationName,
                                    targetLocationName, distance, remark, createby, createtime)
        values (#{ownerid}, #{projectcode}, #{id}, #{startLocationCode}, #{targetLocationCode}, #{startLocationName},
                #{targetLocationName}, #{distance}, #{remark}, #{createby}, sysdate)
    </insert>
    <update id="updateKilometersInfo">
        update kilometersinfo
        set startLocationCode  = #{kilometersInfo.startLocationCode},
            targetLocationCode = #{kilometersInfo.targetLocationCode},
            startLocationName  = #{kilometersInfo.startLocationName},
            targetLocationName = #{kilometersInfo.targetLocationName},
            distance           = #{kilometersInfo.distance},
            remark             = #{kilometersInfo.remark},
            uodateby           = #{kilometersInfo.updateby},
            updatetime         = sysdate
        where ownerid = #{kilometersInfo.ownerid}
          and projectcode = #{kilometersInfo.projectcode}
          and id = #{kilometersInfo.id}
    </update>
    <delete id="deleteKilometersInfo">
        delete
        from kilometersinfo
        where id = #{kilometersInfoId}
    </delete>
    <select id="selKilometersInfo" resultType="app.model.master.Kilometersinfo">
        <![CDATA[
        SELECT *
        FROM (
            SELECT TEMPTABLE.*,
                   ROW_NUMBER() OVER (ORDER BY CREATETIME DESC) AS No000  -- 按创建时间降序排序
            FROM (
                SELECT t.*,
                       COUNT(*) OVER () AS total  -- 计算总记录数
                FROM kilometersinfo t
                WHERE 1 = 1
                  AND t.ownerid = #{ownerid}
                  AND t.projectcode = #{projectcode}
        ]]>
                <if test="kilometersInfoBo.startLocationCode != null and kilometersInfoBo.startLocationCode != ''">
                    <![CDATA[ AND t.startLocationCode = #{kilometersInfoBo.startLocationCode} ]]>
                </if>
                <if test="kilometersInfoBo.targetLocationCode != null and kilometersInfoBo.targetLocationCode != ''">
                    <![CDATA[ AND t.targetLocationCode = #{kilometersInfoBo.targetLocationCode} ]]>
                </if>
                <![CDATA[
                ORDER BY t.CREATETIME DESC  -- 排序条件
            ) TEMPTABLE
        )
        WHERE No000 > (#{kilometersInfoBo.pageNum} - 1) * #{kilometersInfoBo.pageSize}  -- 分页起始位置
          AND No000 <= #{kilometersInfoBo.pageNum} * #{kilometersInfoBo.pageSize}  -- 分页结束位置
        ]]>
    </select>
</mapper>


网站公告

今日签到

点亮在社区的每一天
去签到