DataTables 1.12
很高兴宣布 DataTables 1.12 的发布。这是一个增量升级,实现了我们许多默认样式的现代化,并显著改善了国际化能力。
在本篇文章中,我将简要介绍 DataTables 中的以下增强功能
- 内置日期/时间呈现和排序
- 数字自动区域化显示
- 优化排序样式
- 优化行着色
在此版本中,我们还更新了所有扩展,以确保完全兼容,提供它们的新功能并解决已知问题。请阅读本文结尾处有关所有已发布软件的完整发行说明的链接。
此外,此版本表明我们停止对 DataTables 的 IE6 和 IE7 提供支持。虽然 JavaScript 尚未对其移除支持的那些浏览器的访问漏洞进行修复(并且在 DataTables 2 之前将不会被移除),以便它将继续在其中大量运行,但这对于这些旧浏览器的任何 CSS 访问漏洞现已移除,因此我们仅分发完全有效的 CSS。
实时示例
让我们来了解 DataTables 1.12 的应用——对于以前使用过 DataTables 的任何人都将对此感到亲切
名称 | 办公室 | 开始日期 | 工资 |
---|---|---|---|
老虎 尼克松 | 爱丁堡 | 2011-04-25 | 320800 |
加勒特·温特斯 | 东京 | 2011-07-25 | 170750 |
阿什顿 考克斯 | 旧金山 | 2009-01-12 | 86000 |
塞德里克 凯莉 | 爱丁堡 | 2012-03-29 | 433060 |
艾莉 萨托 | 东京 | 2008-11-28 | 162700 |
布里尔 威廉姆森 | 纽约 | 2012-12-02 | 372000 |
赫罗德 钱德勒 | 旧金山 | 2012-08-06 | 137500 |
罗娜 戴维森 | 东京 | 2010-10-14 | 327900 |
科琳 赫斯特 | 旧金山 | 2009-09-15 | 205500 |
索尼娅 弗罗斯特 | 爱丁堡 | 2008-12-13 | 103600 |
杰娜 盖恩斯 | 伦敦 | 2008-12-19 | 90560 |
昆恩 弗林 | 爱丁堡 | 2013-03-03 | 342000 |
查德 马歇尔 | 旧金山 | 2008-10-16 | 470600 |
海莉 肯尼迪 | 伦敦 | 2012-12-18 | 313500 |
塔季扬娜 菲茨帕特里克 | 伦敦 | 2010-03-17 | 385750 |
迈克尔 席尔瓦 | 伦敦 | 2012-11-27 | 198500 |
保罗 伯德 | 纽约 | 2010-06-09 | 725000 |
格洛丽亚 利特尔 | 纽约 | 2009-04-10 | 237500 |
布拉德利 格里尔 | 伦敦 | 2012-10-13 | 132000 |
戴 里奥斯 | 爱丁堡 | 2012-09-26 | 217500 |
珍内特 考德威尔 | 纽约 | 2011-09-03 | 345000 |
尤里 贝里 | 纽约 | 2009-06-25 | 675000 |
凯撒 万斯 | 纽约 | 2011-12-12 | 106450 |
多丽丝 威尔德 | 悉尼 | 2010-09-20 | 85600 |
安杰莉卡 拉莫斯 | 伦敦 | 2009-10-09 | 1200000 |
加文 乔伊斯 | 爱丁堡 | 2010-12-22 | 92575 |
詹妮弗 张 | 新加坡 | 2010-11-14 | 357650 |
布伦登 瓦格纳 | 旧金山 | 2011-06-07 | 206850 |
菲奥娜 格林 | 旧金山 | 2010-03-11 | 850000 |
寿 伊藤 | 东京 | 2011-08-14 | 163000 |
米歇尔 豪斯 | 悉尼 | 2011-06-02 | 95400 |
苏姬 伯克斯 | 伦敦 | 2009-10-22 | 114500 |
普雷斯科特 巴特利特 | 伦敦 | 2011-05-07 | 145000 |
加文 科尔特斯 | 旧金山 | 2008-10-26 | 235500 |
马尔蒂娜 麦克雷 | 爱丁堡 | 2011-03-09 | 324050 |
尤尼蒂 巴特勒 | 旧金山 | 2009-12-09 | 85675 |
霍华德 哈特菲尔德 | 旧金山 | 2008-12-16 | 164500 |
霍普 弗恩特斯 | 旧金山 | 2010-02-12 | 109850 |
维维安 哈雷尔 | 旧金山 | 2009-02-14 | 452500 |
蒂莫西 穆尼 | 伦敦 | 2008-12-11 | 136200 |
杰克逊 布拉德肖 | 纽约 | 2008-09-26 | 645750 |
奥利维亚 梁 | 新加坡 | 2011-02-03 | 234500 |
布鲁诺 纳什 | 伦敦 | 2011-05-03 | 163500 |
樱花 山本 | 东京 | 2009-08-19 | 139575 |
索尔 沃尔顿 | 纽约 | 2013-08-11 | 98540 |
芬恩 卡马乔 | 旧金山 | 2009-07-07 | 87500 |
塞尔日 鲍德温 | 新加坡 | 2012-04-09 | 138575 |
泽奈达 弗兰克 | 纽约 | 2010-01-04 | 125250 |
佐里塔 塞拉诺 | 旧金山 | 2012-06-01 | 115000 |
詹妮弗 阿科斯塔 | 爱丁堡 | 2013-02-01 | 75650 |
卡拉 史蒂文斯 | 纽约 | 2011-12-06 | 145600 |
赫敏 巴特勒 | 伦敦 | 2011-03-21 | 356250 |
莱尔 格里尔 | 伦敦 | 2009-02-27 | 103500 |
乔纳斯 亚历山大 | 旧金山 | 2010-07-14 | 86500 |
沙德 德克尔 | 爱丁堡 | 2008-11-13 | 183000 |
迈克尔 布鲁斯 | 新加坡 | 2011-06-27 | 183000 |
唐娜 斯奈德 | 纽约 | 2011-01-25 | 112000 |
功能
内置日期/时间呈现和排序
在 DataTable 中显示的最常见的数据类型之一是日期和时间信息。我们已经为 ISO8601 数据提供了长期内置支持,但格式化的日期和时间需要插件。现在不需要了!新的 DataTable.render.date()
辅助函数 和 DataTable.datetime()
函数现在可用于分别显示格式化的日期和注册格式化的日期。
语言环境格式化
将日期和时间加载到 DataTable 中时,我们建议线束数据(即通过 Ajax 加载或从 HTML 中读取的数据)采用 ISO8601 格式。新的 DateTable.render.date()
辅助函数可以分配到带有 columns.render
的日期列,它将自动将其格式化为终端用户将识别的格式(例如,在美国为 MM/DD/YYYY,在英国为 DD/MM/YYYY 等 - 这通过你的 浏览器的 API 在全球范围内起作用)。
例如,你可能会使用
$('#example').DataTable({
columnDefs: [
{
target: 4,
render: DataTable.render.date(),
},
],
});
实战示例.
这不需要任何外部库。但是,如果你想将浏览器的语言环境格式覆盖为自定义格式,这种辅助函数也可以做到,但你需要在你的页面上使用 Moment.js 或 Luxon。
自定义格式
当然,你的数据可能已经格式化好了。要指示 DataTables 如何理解这些格式,请使用 DataTable.datetime()
函数,传入 Moment 或 Luxon 格式字符串以向 DataTables 注册格式(从而允许对数据进行正确的排序)。
DataTable.datetime('D MMM YYYY');
$(document).ready(function () {
$('#example').DataTable();
});
实战示例.
请注意,在这种情况下,你必须在页面上有 Moment 或 Luxon 来注册自定义格式,并且你应该对所使用的库使用确切的格式字符串(它们使用略有不同的格式)。
完整示例集
我们为日期/时间处理示例添加了一个新的示例类别,你可以找到它。
数字的自动语言环境渲染
类似于日期格式,世界上没有通用的数字显示格式(使用标准的世界地图)。为了让所有人都能轻松地理解你的数字数据,而不需要你自己进行每种语言环境的自定义配置,我们的 DataTable.render.number()
已更新为执行自动检测。
你现在可以使用分配给 columns.render
的 DataTable.render.number()
来实现全自动数字格式化
$('#example').DataTable({
columnDefs: [
{
target: 5,
render: DataTable.render.number(),
},
],
});
实战示例.
这是通过 Intl.NumberFormat
API 完成的,该 API 可用于 IE11 及更高版本的所有浏览器中。
排序样式改进
如果你将本页面顶部示例表格与 v1.11 样式表格 进行比较,你会注意到排序图标发生了变化。以前,我们使用 png 背景图像来指示表的排序状态。在 1.12 版本中,我们移除了这些图像,并使用 UTF8 图标替换了它们,并使用伪元素将其放置在表头中。这使得控制图标、图标颜色和其他样式方面变得更加容易,因为现在不需要更新图像,只需几行额外的 CSS 代码即可进行自定义。
此项更改已在 DataTables 中我们所支持的样式框架(例如 Bootstrap、FomaticUI 等)中全面推广,以为轻松设置样式提供了一致的集成。默认样式与所支持的样式框架配合得很好。
行着色改进
如果您曾经尝试在 DataTables 中为表格单元格或行添加背景颜色,您可能很快就会遇到带条纹的行颜色、突出显示的排序行、固定列等问题。最初看似一项简单任务的操作很快会变得密集的 CSS,具体取决于您使用的功能。这是因为为带条纹的行等设置 DataTable 的行色调时使用的是背景颜色,导致了潜在冲突。
不再出现这种情况!我们现在使用嵌入的 box-shadow
(使我们的 CSS 现代化的另一个好处)来设置我们所有的行色调。使用色调的 Alpha 通道,您现在可以简单地为单元格和行应用背景颜色,并且它们将与所有 DataTables 功能(包括行选择)协同工作。
其他更改
还有一些较小的更改
- 通过 Ajax 加载语言文件时,已定义的本地语言选项现在将覆盖远程加载的选项。
- 现在有一个
columnDefs.target
选项 - 这只是columnDefs.targets
的别名,但当针对单个列时很有用。 - 默认处理指示器已更新为更具吸引力。
nowrap
类和其他 文本对齐类 现在在所有支持的样式集成中都可用。pluck
支持嵌套数据。
后续步骤
正如我在开头提到的,这是一项针对 DataTables 的增量更新,还有更多内容即将推出。我们正在努力开发 DataTables 2,它将包含一个重大更改,即完成布局的方式(令人担忧的 dom
选项!)以及更好的页眉和页脚处理。事实上,DataTables 2 已经在 CloudTables 中投入生产,但尚未准备好发布且需要对特定功能进行完善。与其等到完成上述操作并将在此版本中描述的功能包含在该版本中,我想尽早将它们发布出来供大家使用。DataTables 2 尚未定义明确的发布日期 - 它将在完成时完成发布!
这很可能将成为 1.x 系列的最后一个版本(尽管在发布 1.10 和 1.11 时我也说过同样的话)!
发行说明
以下是我们今天发布的所有更新的版本说明链接