layui使用遇到的问题记录

记录一次界面异常刷新

1.编辑页面,点击保存 或者点击其他事件时,执行成功了,但是界面刷新 导致界面关闭失败等问题

首先问题可能是 保存请求失败,(保存时建议同步请求,异步可能不稳定,不是专业前端这个问题我也不太清楚)

$.ajax({
            type: "POST",
            url: context + "/service/fast/checkData/insert",
            data: JSON.stringify(data), //post请求  格式化请求参数
            contentType: "application/json",
            dataType: 'json',
            async: false, //这里控制同步 默认异步
            success: function (result) {
                // 在这里处理返回的结果
                console.log(data);
                clossWin()
            },
            error: function (xhr, textStatus, errorThrown) {
                // 在这里处理错误情况
                console.log("请求失败:" + textStatus + ",错误信息:" + errorThrown);
            }
        })

第二种情况,点击按钮
按钮执行完毕之后,刷新页面;
原因 没有定义button类型 type=“button” //不定义点击后 界面好像类似于重新提交一次 导致刷新

<button id="create" type="button" class="layui-btn layui-btn-normal">重新生成</button>

这两个小问题不大但是很折磨人!

layui分页 table.render()

1.假分页实现 查出所有数据 前端进行分页
table.render({
            elem: '#ID-table-demo-data'  //table id
            ,toolbar: "#toolbarDemo"  
            ,url: context + "/service/yearOverview/allData"
            ,page: true //开启分页,
            ,parseData: function(res){ //将原始数据解析成 table 组件所规定的数据,res为从url中get到的数据
                var result;
                console.log("aaa="+this);
                console.log("bbb"+JSON.stringify(res));
                console.log("curr==="+this.page.curr);

                //(前端来实现)分页:
                //这是前台 用res.data接受全部数据 再根据当前页的条件从全部数据中选取一部分数据显示出来
                if(this.page.curr){
                    //若为第二页 则curr为2 页面显示的数据就是从res.data集合数组里的 (2-1)*limit(10)=10 到 limit(10)*2=20的数据
                    result = res.data.slice(this.limit*(this.page.curr-1),this.limit*this.page.curr);
                }
                else{
                    // 一开始就是第一页 则就是 显示的数据就是从res.data集合数组里的0到limit(10)中
                    result=res.data.slice(0,this.limit);
                }
                return {
                    "code": 0, //解析接口状态  layui 默认0为成功  
                    "msg": res.msg, //解析提示文本
                    "count": res.data.length, //解析数据长度
                    "data": result //解析数据列表
                };
            }
            ,cols: [[ //表头
                {type: 'checkbox',width:'5%'},
                {field: 'id', title: 'id', hide : true},
                {field: 'year', title: '年份', width: '10%'},
                {field: 'belongProvince', title: '省份', width: '10%'},
                {field: 'overviewType', title: '类型', width: '10%'},
                {field: 'overview', title: '内容', width: '65%'},]]
        });
2.后端分页时 总是报数字空指针异常 (后端oracle!!!!)

java.lang.NumberFormatException

打上断点检查下 发现并没有进行字符串转数字的操作,但是却一直报这个错误
查看前端传的参数在这里插入图片描述
发现table.render 开启分页会默认传 limit page 这两个值
测试remove掉map中的这两个参数 查询成功!!

所以为了实现分页 只能后端对 limit page进行操作后 重新自定义赋值
例:(这种写法反正是不太美观 建议封装或者其他方法 不过这个也比较直观)

Integer limit = (Integer) param.get("limit");
		//根据limit  page  求出  分页参数
        Integer page = (Integer) param.get("page");
        param.put("li", limit + "");  // 10  结尾
        param.put("sta", (page - 1) * limit + "");  //0  开始
        param.remove("limit");
        param.remove("page");
        Map<String,Object> result = new HashMap();
        result.put("data",fastCheckDataMapper.selectEquipmentCheckDataList(param));
        param.remove("li");
        param.remove("sta");
        //移除 分页参数  获取总数
        result.put("total",(fastCheckDataMapper.selectEquipmentCheckDataList(param)).size());
<select id="selectEquipmentCheckDataList" resultType="map" parameterType="map" >
    select * from BM_FAST_CHECK_DATA
    <where> 1=1
      <if test="null != sampleName and ''.toString() != sampleName" >
          and SAMPLE_NAME = #{sampleName,jdbcType=VARCHAR}
      </if>
    </where>
    <!-- 记录传入的参数 -->
    <if test="sta!=null and sta!='' and li!=null and li!=''">
      limit #{sta},#{li}
    </if>
  </select>

后来查了一下还是关键字的锅
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值