jquery datatable无数据提示不居中显示
原文地址:https://www.jianshu.com/p/fc4784d11722
昨天遇到一个问题,datatable生成的表格没有数据,但是“No data found”没有居中,根本原因是clospan属性值设置不正确。排查发现这个问题只出现在渲染时处于不可见状态的表格。
解决办法:改jquery.dataTables.js的源码。return$(_pluck( oSettings.aoColumns,'nTh') ).filter(':visible').length;这一步返回的是可见列的数量,改成return$(_pluck( oSettings.aoColumns,'nTh') ).length;就是返回所有列的数量。如果采取这种办法,请先保证不会影响其他功能。
通过很长时间的研究,确定是jQuery dataTables.js的问题。找到了空数据时生成的逻辑。源代码如下:
/* Table is empty - create a row with an empty message in it */
varsZero=oLang.sZeroRecords;
if( oSettings.iDraw==1&&_fnDataSource( oSettings ) =='ajax')
{
sZero=oLang.sLoadingRecords;
}
else if(oLang.sEmptyTable&& oSettings.fnRecordsTotal() ===0)
{
sZero=oLang.sEmptyTable;
}
关键代码:
'valign':'top',
'colSpan':_fnVisbleColumns( oSettings ),
'class': oSettings.oClasses.sRowEmpty
} ).html(sZero) )[0];
一直要找的就是这个属性,看看这个函数时如何定义的吧。看名字就知道应该和可见的列有关。愈加证明我的推测了。
/**
* Get the number of visible columns
*@param{object} oSettings dataTables settings object
*@returns{int} i the number of visible columns
*@memberofDataTable#oApi
*/
function_fnVisbleColumns( oSettings )
{
return$(_pluck( oSettings.aoColumns,'nTh') ).filter(':visible').length;
}
到这里终于找到了问题的原因,原来dataTable的clospan属性是获取所有可见列的数量。如果当时表格是隐藏的,那么可见的列数自然为0,所以clospan属性也就设置为0。当表格再次可见时,colspan的值为0,所以提示信息没有居中。
jquery datatable无数据提示不居中显示的更多相关文章
- 使提示框居中显示&自定义提示框
ToastActivity.java文件: 1 public class ToastActivity extends AppCompatActivity { 2 private Button mbtn ...
- css+html+JQuery 万能弹出层,居中显示
function ShowMsg(str) {//要提示的文字 $(".payment_time_mask").remove(); $("body").appe ...
- JQuery datatables 标题和内容居中显示
1.如题,使用到了强大的表格插件datatables,要使标题和内容都居中显示,只需要在jsp引入css,写上如下内容即可: /*qiulinhe:2016年11月7日13:48:26*/ /* da ...
- jquery datatable 参数api
jQuery 的插件 dataTables 是一个优秀的表格插件,提供了针对表格的排序.浏览器分页.服务器分页.筛选.格式化等功能.dataTables 的网站上也提供了大量的演示和详细的文档进行说明 ...
- 使用jquery dataTable
jQuery 的插件 dataTables 是一个优秀的表格插件,提供了针对表格的排序.浏览器分页.服务器分页.筛选.格式化等功能.dataTables 的网站上也提供了大量的演示和详细的文档进行说明 ...
- JQuery DataTable的配置项及事件
当我们需要在加载或者显示表格的时候,改变jquery datatable 的数据,或增加一些html标签处理. 可以通过Jquery DataTable的回调函数处理. 实例代码: if (oTabl ...
- jquery datatable设置垂直滚动后,表头(th)错位问题
jquery datatable设置垂直滚动后,表头(th)错位问题 问题描述: 我在datatable里设置:"scrollY": '300px',垂直滚动属性后,表头的宽度就会 ...
- [转]使用jquery dataTable
本文转自:http://blog.csdn.net/llhwin2010/article/details/8663753 jQuery 的插件 dataTables 是一个优秀的表格插件,提供了针对表 ...
- springmvc使用jQuery.datatable时遇到的错误
springmvc使用jQuery.datatable时遇到的错误 1正确时返回 josn结果: {,,,,,,,,,,,,,,,,"} 页面显示处理中(processing),列表空白,其 ...
随机推荐
- spring mvc dispatcherServlet
1. 在web.xml中配置servlet对相应的url请求进行处理 <servlet> <servlet-name>springDispatcher</servlet- ...
- 解决ssh无操作自动断开[转载,已经验证]
用SSH远程,如果几分钟没有任何操作,连接就会断开,必须重新登陆才行,非常麻烦,一般修改2个地方3项即可解决问题: 1.终端键入:echo $TMOUT 如果显示空白,表示没有设置,等于使 ...
- 移动web页面字体大小二
按设计稿中的字体大小设置页面字体大小(px),在手机端,因为不同设备会有不同,换算成rem单位.rem是“font size of the root element”,可以通过这篇文章了解http:/ ...
- Python()- 面向对象的组合用法
面向对象的组合用法 一个类中以另一个类的对象作为数据属性(一个类中引用另一个类的对象)一种 "有" 的关系: 比如:定义 1个人类 & 1个武器类 然后 张三 有 枪 李四 ...
- 洛谷—— P1977 出租车拼车
https://www.luogu.org/problem/show?pid=1977 题目背景 话说小 x 有一次去参加比赛,虽然学校离比赛地点不太远,但小 x 还是想坐 出租车去.大学城的出租车总 ...
- lombok注解
官方文档:@EqualsAndHashCode 转:https://blog.csdn.net/zhanlanmg/article/details/50392266 1. 此注解会生成equals(O ...
- hp 88a加粉
http://v.youku.com/v_show/id_XNzEzODEwNzMy.html
- eclipse导入maven工程步骤
转自:http://jingyan.baidu.com/article/cbf0e500a6e3252eaa2893c1.html 感谢作者 步骤一 : 选择 “Import”操作 有两个途径可以选择 ...
- IPTABLES基本例子
iptables –F #删除已经存在的规则 iptables -P INPUT DROP #配置默认的拒绝规则.基本规则是:先拒绝所有的服务,然后根据需要再添加新的规则. iptables -A I ...
- Win8系统如何在桌面行显示我的电脑
1 桌面右击-个性化 2 更改桌面图标-然后可以在桌面上显示需要的东西