layui前端分页不要每次调后端

layui前端分页不要每次调后端,第1张

layUI实现前端分页和后端分页

本文实例为大家分享了layUI实现前端分页和后端分页效果,供大家参考,具体内容如下

layui后端分页:

function pagination(curr,gwayId,mlity,ePart) {

$("manage_ys_list")html('加载中');

let dd={

conditions: {

gatewayId:gwayId,

searchText:"",

pageSize:15,

pageIndex:curr-1

},

identity:{

"userName":userName1,

"sessionId":sessionId1,

"token":token2

}

}

$ajax({

type:"POST",

dataType: 'json',

url:UserListPaged,

data:dd,

headers:{ 'X-Requested-With': 'XML>

在Excel中根据需要可以利用“数据/有效性”设置下拉菜单供选择数据填表使用。举例:在一个工作表中输入性别男、女。选定输入性别的数据区域;执行“数据/有效性”命令,打开“数据有效性”对话框;单击“设置”选项卡;在“允许”栏中选择“序列”、在“来源”中输入“男,女”(不含引号,且用英文逗号分隔);选中“忽略空值”和“提供下拉箭头”后,单击“确定”按钮。返回工作表,在原选定的单元格区域任意单击一个单元格,右侧出现一个下拉箭头,单击下拉箭头,显示一个男女的列表,在列表中选择后单击即可在当前单元格进行数据输入。

layuiuse(['form'], function() {

var form = layuiform;

formon('checkbox(selsLeft)', function(data) {

if(dataelemchecked) {

$(':checkbox[name="selsLeft"]')attr("checked", false);

$(this)attr("checked", true);

//清除第一次选择后的复选框选中状态

$("input:checkbox[name='selsRight']")attr("checked", false);

var id = $(this)val();

showPosition(id);

}else{

$("input:checkbox[name='selsRight']")attr("checked", false);

}

layuiuse(['form'], function() {

var form = layuiform;

formrender(); // 更新全部

});

});

});

function showPosition(idu){

$ajax({

type:"post",

url:basePath + '/aaa/bbb',

async:false,

data:{

"id":idu,

},

success:function(data){

var data = eval("(" + data + ")");

for(var i=0;i<datalength;i++){

var idp=data[i];

$("input:checkbox[value="+idp+"][name='selsRight']")attr('checked','true');

}

}

});

}

热身话题

在开发的过程中,大量数据的展示大多采用表格的方式,直观,清晰。在这里,我也使用过一些框架Bootstraptable ,Dev table ,layui table。本次采用的layui table。用表格展示数据的同时会提供丰富的查询条件去筛选相应的数据。由于大量的数据,一般都会使用分页的形式去查询数据,框架中带有这种功能。

底部分页栏效果图

上方查询栏效果图

问题来源

首次进入页面或者页数停留在第一页使用查询栏查询时能够查询到数据。当分页切换到第二页时,再使用查询栏查询,可能查不到数据。(为什么说是可能?后面会给出解释)

理想方法

 ①在查询提交参数时,添加一个参数 page:1

layui中通过where提交参数 where:{ search:{'USER_NAME':'汪菜菜'},page:1}

注:此方法虽然看似解决了问题,实际存在巨大的bug。你会发现使用查询栏后当你选择任一页时请求后台的page参数都为1,也就是无论选择哪一页得到的结果都是第一页的数据。

 ②自己也找过资料,说要把请求参数写成下方这种形式,测试结果也并未解决问题,和不加的效果相同,不知道时因为后台处理问题还是其他问题。

var Table = {

ID: "tb",

page: {

curr: 1

},

Where: {

search: JSONstringify(jsondata),

}

};

怎么肥四,难道是layui更新了吗,之前我使用这个解决方式是不行滴,目前此解决方法是可行的。2019-12-17

在使用layui 的过程中还是发现无法满足开发需求,后期将使用dev表格框架。

问题解析

表格有自带的分页功能,后台分页主要是通过传参 {limit:15,page:1} ,表示当前页数为第一页,每页显示15条数据,两个参数来控制分页的分页查询。假设当前有三十条数据,则初始化表格时,显示两页,总数30,页数为1,数据源为1-15条数据。当我们添加查询条件时,假设我通过模糊查询 “汪” 能在 30 条数据中查询到 10 条数据 ,当前页数为第一页,查询的数据进行分页{limit:15,pa

用什么标签不重要,只要样式用对了,都能出效果,用ul里面嵌套li与div嵌套div是一样的,注意里面子项里面要加一个<a></a>不然点击没效果

如果不加载element模块,也没有效果

(在页面中有很多元素需要自动去完成一些处理,譬如导航菜单的小滑块、Tab的切换 *** 作,他们往往不需要去单独调用一个方法来开启一项功能,而页面上恰恰有太多这样的小交互,所以我们统一归类为element组件)

相关样式:

1、方向

(1)水平:默认的

(2)垂直:layui-nav-tree

2、其他样式

(1) layui-nav :代表这是一个导航菜单

(2) layui-nav-item :放在(1)的子标签中,代表这个导航菜单的一个子项

(3) lay-this :和(2)同级,代表当前选中的菜单项

(4) layui-nav-child :子项的子项

(5) layui-nav-img :会以导航合适的大小处理

导航菜单可应用于头部和侧边,Tab选项卡提供多套风格,支持响应式,支持删除选项卡等功能。面包屑结构简单,支持自定义分隔符。

1、风格说明

默认风格:只需要加layui-tab

简洁风格:再追加上layui-tab-brief

卡片风格:再追加上layui-tab-card

2、相关样式

layui-tab:代表这是一个选项卡

(1)layui-tab-title:选项卡的头

1layui-tab-this:选中该选项卡

(2)layui-tab-content:选项卡的内容

1layui-tab-item:一个选项卡头对应的具体内容

2layui-tab-show:表示初始显示,一般哪个头上加了layui-tab-this,它对应的content就加上layui-tab-show

3、相关属性

lay-allowclose="true":是否开启关闭按钮

lay-filter="demo":用来在方法中唯一确定一个layui组件

lay-id="1":用来配合lay-filter属性唯一确定一个子组件

4、相关方法

elementtabAdd(filter, options):用于新增一个Tab选项

option示例:

{

title: '选项卡的标题'

,content: '选项卡的内容' //支持传入html

,id: '选项卡标题的lay-id属性值'

}

elementtabDelete(filter, layid):用于删除指定的Tab选项

elementtabChange(filter, layid):用于外部切换到指定的Tab项上

进度条进度条可应用于许多业务场景,如任务完成进度、loading等等,是一种较为直观的表达元素。

相关样式:

layui-progress:表示这是一个进度条

layui-progress-bar:表示进度条中的进度,依靠其lay-percent属性的值来控制进度大小,值取值范围0-100%

layui-bg-red/green/:表示进度条的颜色

layui-progress-big:表示大尺寸进度条

相关属性:

lay-percent="80%":代表具体的进度

lay-showpercent="true":是否显示百分比数字

进度条的宽度是 100% 适配于它的父级元素

一般的面板通常是指一个独立的容器,而折叠面板则能有效地节省页面的可视面积,非常适合应用于:QA说明、帮助文档等(同样依赖element)

1、卡片面板

相关样式:

layui-row:代表一行

layui-col-space15:space0-space30,代表卡片之间的间距

layui-colmd5:md1-12,代表当前卡片占整行的列数

layui-card:代表一个卡片

layui-card-header:代表卡片头信息

layui-card-body:代表卡片内容样式

2、普通折叠面板

相关样式:

layui-collapse:代表一个折叠面板

layui-colla-item:代表一个折叠项

layui-colla-title:代表一个折叠项的标题

layui-colla-content:代表一个折叠项展开s的内容

layui-show:是否展开

相关事件:

3、手风琴面板

在普通折叠面板的基础上加上lay-accordion=""

MVC设计模式把一个软件组件区分为三个不同的部分,model,view,controller。

MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。MVC模式最早是smalltalk语言研究团提出的,应用于用户交互应用程序中。smalltalk语言和java语言有很多相似性,都是面向对象语言,很自然的SUN在petstore(宠物店)事例应用程序中就推荐MVC模式作为开发Web应用的架构模式。MVC模式是一种架构模式,其实需要其他模式协作完成。在J2EE模式目录中,通常采用service to worker模式实现,而service to worker模式可由集中控制器模式,派遣器模式和Page Helper模式组成。而Struts只实现了MVC的View和Controller两个部分,Model部分需要开发者自己来实现,Struts提供了抽象类Action使开发者能将Model应用于Struts框架中Model是代表组件状态和低级行为的部分,它管理着自己的状态并且处理所有对状态的 *** 作,model自己本身并不知道使用自己的view和controller是谁,系统维护着它和view之间的关系,当model发生了改变系统还负责通知相应的view。

View代表了管理model所含有的数据的一个视觉上的呈现。一个Model可以有一个以上的View,但是Swing中却很少有这样的情况。

Controller管理着model和用户之间的交互的控制。它提供了一些方法去处理当model的状态发生了变化时的情况。

​ <font color="red">模块加载名称: laypage </font>

​ laypage 的使用非常简单,指向一个用于存放分页的容器,通过服务端得到一些初始值,即可完成分页渲染。

通过核心方法: laypagerender(options) 来设置基础参数。

当分页被切换时触发,函数返回两个参数: obj (当前分页的所有选项值)、first(是否首次,一般用于初始加载的判断)

​ <font color="red">模块加载名称: table </font>

​ 创建一个table实例最简单的方式是,在页面放置一个元素 <table id="demo"></table> ,然后通过 tablerender() 方法指定该容器。

数据接口 userjson

​ 在一段 table 容器中配置好相应的参数,由 table 模块内部自动对其完成渲染,而无需你写初始的渲染方法。

​ 1) 带有 class="layui-table" 的 <table> 标签。

​ 2) 对标签设置属性 lay-data="" 用于配置一些基础参数

​ 3) 在 <th> 标签中设置属性 lay-data="" 用于配置表头信息

​ 页面已经存在了一段有内容的表格,由原始的table标签组成,只需要赋予它一些动态元素。

执行用于转换表格的JS方法

以上就是关于layui前端分页不要每次调后端全部的内容,包括:layui前端分页不要每次调后端、关于layui获取的table返回数据类型错误、layui 表单 select 下拉菜单 怎么设置第二个为加载选中默认值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9440579.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存