解决boostrap table 选中复选框翻页后选中复选框消失

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44682266/article/details/95065937

boostrap table 中复选框选中后,翻页操作会导致上一页选中的丢失,api中的 bootstrapTable(‘getSelections’); 只能拿到当前页的复选框,而现在希望翻页之后再回到当前页的时候被勾选的复选框不会丢失.

首先

  1. 定义一个全局的数组 ,存储你选中的row的唯一标识:此处我用的唯一标识是ldbm,因为我之后需要用到,勾选实现导出,你们可根据自己的需求来.
    在这里插入图片描述

  2. 加载数据源时: 配了基础的条件后,要设置maintainSelected: true, //默认false,设置为“true”可在翻页时保留所选行
    在这里插入图片描述3. boostrap table中你要展示的字段: 把你的复选框加上一个方法来判断当前row的唯一标识是否存在在全局数组中.在这里插入图片描述

  3. 最后这两个方法需要注意括号和位置: 注意自己的括号是否写对了位置,要不然找起来很麻烦, 这两个方法要放在加载table 的方法中而不是放在加载数据源的方法中;
    在这里插入图片描述

  4. 总结: 亲测可用! 页面重新加载table时需将全局数组置为空!
    1.第一页勾选三行,切换到第三页
    在这里插入图片描述
    2.切换到第三页勾选三行
    在这里插入图片描述
    3.回到第一页
    在这里插入图片描述

展开阅读全文

复选框选中的问题

09-26

[code=Java] rn<%rn String op = myprog.getParam( "op" );rn if(op.equals( "op_edit"))rn rn String record_id = myprog.getParam( "record_id" );rn //System.out.println(record_id);rn sSql = "SELECT msg_id FROM S_Msg WHERE record_id='" + record_id + "'";rn System.out.println(sSql);rn String td[][] = db.selectA( sSql );rn String msg_id = td[0][0];rn sql="select rec_emp_name from S_RecMsg where msg_id='"+msg_id+"'";rn String emp_name[][] = db.selectA( sql );rn System.out.println(sql);rn //var checkboxs=document.getElementsByName("rec_emp_name"); rn for(int i=0;irn<%!rnString sSql="";rnString sql="";rnrn//=============================================================================rn//扩展列表分页显示类rn//=============================================================================rnrnclass myListTable extends jbs.html.listTable rn public String getSelect(String curName)rn rn String record_id = myprog.getParam( "record_id" );rn //System.out.println(record_id);rn sSql = "SELECT msg_id FROM S_Msg WHERE record_id='" + record_id + "'";rn System.out.println(sSql);rn String td[][] = db.selectA( sSql );rn String msg_id = td[0][0];rn sql="select rec_emp_name from S_RecMsg where msg_id='"+msg_id+"'";rn String emp_name[][] = db.selectA( sql );rn System.out.println(sql);rn String returnValue = ""; rn for(int i = 0; i < emp_name.length; ++i)rn rn if(emp_name[i][0].equals(curName))rn rn returnValue = "checked"; rn break; rn rn rn return returnValue; rn rn //系统查询数据库后,在生成页面前,自动调用此方法rn //可对结果集进行处理,提供如下变量可供使用:rn //resultRow 结果行数,resultCol 结果列数,resultData[][]查询结果二维数组rn public void BeforeMakeTable() rn for( int i=0; i" + resultData[i][1];rn String sql="select emp_id,emp_name from S_Emp where dep_id='"+temp_id+"'";rn rn String emp[][] = db.selectA(sql);rn resultData[i][1]="";rn for(int x=0; x<(emp.length); x++)rn rn rn if(!emp[x][0].equals(""))rn rn resultData[i][1] += "" + emp[x][1]+"";rn rn rn rn rn //备注rn // resultData[i][2] = "";rnrn rn rnrn//结束类定义rnrn%>rnrn<%rnString searchWhere = "";//查询SQL WHERE条件rnString searchUrl = ""; //获取分页的附加参数rnrnrn//表格字段名称, 宽度, 对齐rnString tbTitle[][] = new String[][] rn "部门", "5%", "left" ,rn "员工", "50%", "left" ,rn// "选择", "5%", "left" ,rn// "员工", "10%", "center" ,rn// "员工", "10%", "left" ,rnrn // "员工", "10%", "left" ,rnrn;rnrnrn//定义显示数据rn//或者从数据库直接查询而来, 如 String tbData[][] = db.selectA( SQL );rnsSql = "select dep_id,dep_name from S_Dep order by record_id";rnString tbData[][] = db.selectA( sSql );rnrn//需要隐藏的字段rnint tbHidden[] = new int[] rn 10rn;rnrn//附加查询SQL WHERE 条件rnString tbWhere = searchWhere;rnrnmyListTable ap = new myListTable();rn//ap.addForm( "form_table", "", "return false;" );//增加FORMrnap.setEnv( pageContext, db );//传入JSP页面对象, 数据库对象rnap.setTitle( tbTitle );//传入字段标题rnap.setChooseType( 0 );//第0列显示方式:0/正常,1/单选框,2/多选框rnap.setShowRecordNum( 9999 );//每页显示记录数rn//ap.setSQL( tbFields, tbSqlFields, "V_Yf_Product_Detail", tbWhere, tbOrder );//字段,表名,SQL WHERE条件,SQL排序rn//改为直接传入数据rnap.setData( tbData ); //必须, 传入查询结果集rn//ap.setPostUrl( searchUrl );//分页附加条件rnap.setHidden( tbHidden ); //隐藏rn//ap.setDefaultValue( myprog.getParam( "defaultClickValue" ) ); //缺省选中值rnap.showNavigate( false );//显示导航条rnrnString sHtml = ap.getHtml();//输出结果rnrn//=============================================================================rn//输出页面rn//=============================================================================rnrnmytpl.setParam( "TO_DETAIL", sHtml );rn%>rnrn[/code]rnrn这是整个JSP代码,怎样把让rec_emp_name复选框的value等于emp_name[i][]时让它选中?请各位高手帮忙解答一下 论坛

没有更多推荐了,返回首页