项目中遇到给用户在所有产品中匹配一部分产品。用layui 第一页选好之后到第二页再选,等回到第一页时之前选择的都没了,解决这个问题的办法如下:

//勾选的产品id集合
var chooseAdids = new Array();
//表格数据缓存
var table_data = new Array();
var adid = "";
layui.use('table', function () {
var table = layui.table;
//监听表格复选框选择
table.on('checkbox(user)', function (obj) {
if (obj.checked == true) {
//选中
if(obj.type == 'one') { //当选中一个时 obj.type默认是'one',否则默认是'all'
//去重复
if(chooseAdids.indexOf(obj.data.id,)==-)
{
chooseAdids.push(obj.data.id); } } else {
//全选
for (var i = ; i < table_data.length; i++) {
if(chooseAdids.indexOf(obj.data.id,)==-)
{ chooseAdids.push(table_data[i].id);
} }
}
}
else {
//取消选中
if(obj.type == 'one') {
for (var i = ; i < chooseAdids.length; i++) {
if (chooseAdids[i] == obj.data.id) {
//从下标 i 开始删除一个元素
chooseAdids.splice(i, );
}
}
}
else {
for (var i = ; i < chooseAdids.length; i++) {
for (var j = ; j < table_data.length; j++) {
if (chooseAdids[i] == table_data[j].id) {
//从下标 i 开始删除一个元素
chooseAdids.splice(i,);
}
}
}
}
}
}); var aid = parent.document.getElementById("txtmarry").value; //当编辑时从父页面拿到产品id存在chooseAdids里面供默认选中
if(aid!="")
{
var arr = aid.split(',');
for (var i = ; i < arr.length; i++) {
chooseAdids.push(arr[i]);
}
}
var width = calColumWidth(, , );
// 浏览器宽度发生改变
window.onresize = function () {
width = calColumWidth(, , );
tb.reload();
}
InitAllAdType();
//方法级渲染
var tb = table.render({
elem: '#LAY_table_user'
, url: '@Url.Action("AdidList", "Web_WebUsers")'
, cols: [[
{ checkbox: true, field: 'ck', LAY_CHECKED: false, width: width },
{ field: 'id', title: '产品ID', width: width },
{ field: 'title', title: '产品名称', width: width },
{ field: 'aduserid', title: '产品商ID', width: width },
{ field: 'price_descript', title: '价格描述', width: width },
{ field: 'price_adv', title: '产品商单价/元', width: width },
{ field: 'data_return', title: '返回期限', width: width, templet: '#data_returnTpl' },
{ field: 'data_Confirmation', title: '确认时间', width: width, templet: '#data_ConfirmationTpl' }
]]
, id: 'testReload'
, page: true
, limit:
, limits: []
, height: 'auto'
, width: '80%'
, done: function (res, curr, count) {
// $("[data-field='id']").css('display', 'none');
// 设置换页勾选之前的
table_data = res.data;
//循环所有数据,找出对应关系,设置checkbox选中状态
for (var i = ; i < res.data.length; i++) {
for (var j = ; j < chooseAdids.length; j++) {
if (res.data[i].id == chooseAdids[j]) {
//这里才是真正的有效勾选
res.data[i]["LAY_CHECKED"] = 'true';
//找到对应数据改变勾选样式,呈现出选中效果
var index = res.data[i]['LAY_TABLE_INDEX'];
$('.layui-table tr[data-index=' + index + '] input[type="checkbox"]').prop('checked', true);
$('.layui-table tr[data-index=' + index + '] input[type="checkbox"]').next().addClass('layui-form-checked');
}
}
}
},
skin: 'row',
even: true
}); var $ = layui.$, active = {
reload: function () {
var txtguz = $('#txtguz');
var txtadtype = $('#txtadtype');
//执行重载
table.reload('testReload', {
page: {
curr: //重新从第 1 页开始
}
, where: {
txtguz: txtguz.val(),
txtadtype: txtadtype.val()
}
});
}
,
getCheckLength: function () { //一键申请
var uIDs = "";
if (chooseAdids.length <= ) {
layer.msg('请先选择要匹配的产品')
return;
}
else {
layer.confirm('确定匹配这些产品吗?', function (index) {
for (var i = ; i < chooseAdids.length; i++) {
uIDs += chooseAdids[i] + ",";
}
doOk(uIDs.substring(, uIDs.length - )); //将选中的产品id传到父页面显示出来
});
}
} }; $('.demoTable .layui-btn').on('click', function () {
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
}); function doOk(ids) {
parent.ChooseAdidValues(ids); //将选中的产品id传给父页面
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index); //关闭当前子页面
}

父页面:

解决layui选中项下一页清空问题的更多相关文章

  1. 使用mobile jQuery 动态给select下拉添加数据,选中项默认不显示的解决方法。

    getaddress(); function getaddress(type=0,parent='') { var tid=1; $.ajax({ type: "post", ur ...

  2. select2 清除选中项解决办法

    在项目中使用select2:选中项 设置可清除. 代码中加上了allowClear : true $.get("/Work/Ajax/Select.ashx", function ...

  3. 刷新各ifream当前页,下拉项改变触发事件js,给选中项加背景色js

    <script type="text/javascript" language="javascript"> //刷新框架各页面 function r ...

  4. Session变量不能传送到下一页.解决: session.use_trans_sid = 1

    转自:http://blog.csdn.net/drylandfish/article/details/244085 附:文摘===================================== ...

  5. jquery操作select下拉框的各种方法,获取选中项的值或文本,根据指定的值或文本选中select的option项等

    简介jquery里对select进行各种操作的方法,如联动.取值.根据值或文本来选中指定的select下拉框指定的option选项,读取select选中项的值和文本等. 这一章,站长总结一下jquer ...

  6. 解决layui下拉选择框只能选择不能手动输入文字

    审查元素可以看到,layui的select下拉框是用input和div模拟出来的,所以,如下例子,我的解决方法是:$('.mySelect').find('input').removeAttr(&qu ...

  7. ASP.NET MVC中使用MvcPager异步分页+在分页中复选框下一页上一页也保持选中

    ASP.NET MVC 分页使用的是作者杨涛的MvcPager分页控件  地址:http://www.webdiyer.com/mvcpager/demos/ajaxpaging/ 这个分页控件在里面 ...

  8. jquery 如何获取select 选中项的下一个选项的值

    <select> <option value="1" selected="selected">a</option> < ...

  9. jsp页面关建字查询出记录后,点下一页关键字会清空,怎么保持关键字不变而进行下一页操作?

    解决方案一: 1 把关键字带回后台,从后台再次传入! 2 把关键字传入cookie,从cookie获取 3 把表格一栏放在iframe中,搜索时,刷新iframe即可 解决方案二: 用2个div分开就 ...

随机推荐

  1. 数据结构Java实现01----线性表与顺序表

    一.线性结构: 如果一个数据元素序列满足: (1)除第一个和最后一个数据元素外,每个数据元素只有一个前驱数据元素和一个后继数据元素: (2)第一个数据元素没有前驱数据元素: (3)最后一个数据元素没有 ...

  2. springboot(十八):解决跨域问题

    在controller上添加@CrossOrigin注解,如下: @RestController @RequestMapping("course") @CrossOrigin pu ...

  3. 万能五笔输入法"@相反

    经过查找资料,发现是因为键盘使用的英国导致,改为美国解决,其他输入法没发现这个问题.

  4. 清除 SQL Server Management Studio 服务器名称历史记录

    Ø  前言 在开发过程中,经常使用 SQL Server Management Studio 连接本地或远程 SQL Server 服务器,时间长了可能有些名称就不用了或者重复了,SQL Server ...

  5. 开发mis系统需要的技术

    一.b/s架构 b/s架构:就broser/server,浏览器/服务器的说法.服务器端要运行tomcat,提供链接数据库服务供java代码读写数据,这个可以在eclipse中配置运行.浏览器则解释j ...

  6. “无法找到XXX.exe的调试信息,或调试信息不匹配”解决方案

    错误信息如下: 解决方法: 选择项目属性,依次序进行如下操作. 1.选择 配置属性->链接器->调试->生成调试信息 改为 是 一般问题都是出现在这个地方,修改完了可以尝试运行,若还 ...

  7. Jupyter 同时支持python2, python3

    从docker hub 下载了一个 tensorFlow 镜像,但是里面只支持python2.7 kernel, 不支持python3 kernel. 1. Notebook的右上角点new 只看到 ...

  8. P1494 [国家集训队]小Z的袜子(莫队)

    题目链接:https://www.luogu.org/problemnew/show/P1494 题目大意:中文题目 具体思路:计算概率的时候,每一次是区间的移动,每一次移动,记得先将原来的记录的影响 ...

  9. 《2013传智播客视频》-wmv,avi,mp4.目录

    \!--14俄罗斯方块\视频\.复习.avi; \!--14俄罗斯方块\视频\ 复习.avi; \!--14俄罗斯方块\视频\ 形状旋转.avi; \!--14俄罗斯方块\视频\ 判断形状能否变形.a ...

  10. Django学习手册 - 权限管理(二)

    从数据库获取数据后,对数据进行清洗 目标: 数据1,存放至session 中的数据 数据2,显示至前端的菜单数据 清洗数据: 1.session存放的数据:(menu_leaf_dict) 2.前端菜 ...