介绍 StateRestore
StateRestore 是 DataTables 的一个新扩展,它基于 stateSave 初始化选项,允许用户保存多个状态,然后在以后恢复它们。当然,有几个初始化选项允许用户自定义扩展的行为以满足他们的个人需求。状态可以保存在会话存储中,或者通过 ajax 发送并保存在服务器上。
您可以在下面看到一个示例 - 点击创建状态按钮保存第一个状态
| 姓名 | 职位 | 办公室 | 年龄 | 开始日期 | 薪资 |
|---|---|---|---|---|---|
| Tiger Nixon | 系统架构师 | 爱丁堡 | 61 | 2011-04-25 | $320,800 |
| Garrett Winters | 会计师 | 东京 | 63 | 2011-07-25 | $170,750 |
| Ashton Cox | 初级技术作家 | 旧金山 | 66 | 2009-01-12 | $86,000 |
| Cedric Kelly | 高级 Javascript 开发人员 | 爱丁堡 | 22 | 2012-03-29 | $433,060 |
| Airi Satou | 会计师 | 东京 | 33 | 2008-11-28 | $162,700 |
| Brielle Williamson | 集成专家 | 纽约 | 61 | 2012-12-02 | $372,000 |
| Herrod Chandler | 销售助理 | 旧金山 | 59 | 2012-08-06 | $137,500 |
| Rhona Davidson | 集成专家 | 东京 | 55 | 2010-10-14 | $327,900 |
| Colleen Hurst | Javascript 开发人员 | 旧金山 | 39 | 2009-09-15 | $205,500 |
| Sonya Frost | 软件工程师 | 爱丁堡 | 23 | 2008-12-13 | $103,600 |
| Jena Gaines | 办公室经理 | 伦敦 | 30 | 2008-12-19 | $90,560 |
| Quinn Flynn | 支持主管 | 爱丁堡 | 22 | 2013-03-03 | $342,000 |
| Charde Marshall | 区域总监 | 旧金山 | 36 | 2008-10-16 | $470,600 |
| Haley Kennedy | 高级营销设计师 | 伦敦 | 43 | 2012-12-18 | $313,500 |
| Tatyana Fitzpatrick | 区域总监 | 伦敦 | 19 | 2010-03-17 | $385,750 |
| Michael Silva | 营销设计师 | 伦敦 | 66 | 2012-11-27 | $198,500 |
| Paul Byrd | 首席财务官 (CFO) | 纽约 | 64 | 2010-06-09 | $725,000 |
| Gloria Little | 系统管理员 | 纽约 | 59 | 2009-04-10 | $237,500 |
| Bradley Greer | 软件工程师 | 伦敦 | 41 | 2012-10-13 | $132,000 |
| Dai Rios | 人事主管 | 爱丁堡 | 35 | 2012-09-26 | $217,500 |
| Jenette Caldwell | 开发主管 | 纽约 | 30 | 2011-09-03 | $345,000 |
| Yuri Berry | 首席营销官 (CMO) | 纽约 | 40 | 2009-06-25 | $675,000 |
| Caesar Vance | 售前支持 | 纽约 | 21 | 2011-12-12 | $106,450 |
| Doris Wilder | 销售助理 | 悉尼 | 23 | 2010-09-20 | $85,600 |
| Angelica Ramos | 首席执行官 (CEO) | 伦敦 | 47 | 2009-10-09 | $1,200,000 |
| Gavin Joyce | 开发者 | 爱丁堡 | 42 | 2010-12-22 | $92,575 |
| Jennifer Chang | 区域总监 | 新加坡 | 28 | 2010-11-14 | $357,650 |
| Brenden Wagner | 软件工程师 | 旧金山 | 28 | 2011-06-07 | $206,850 |
| Fiona Green | 首席运营官 (COO) | 旧金山 | 48 | 2010-03-11 | $850,000 |
| Shou Itou | 区域营销 | 东京 | 20 | 2011-08-14 | $163,000 |
| Michelle House | 集成专家 | 悉尼 | 37 | 2011-06-02 | $95,400 |
| Suki Burks | 开发者 | 伦敦 | 53 | 2009-10-22 | $114,500 |
| Prescott Bartlett | 技术作家 | 伦敦 | 27 | 2011-05-07 | $145,000 |
| Gavin Cortez | 团队主管 | 旧金山 | 22 | 2008-10-26 | $235,500 |
| Martena Mccray | 售后支持 | 爱丁堡 | 46 | 2011-03-09 | $324,050 |
| Unity Butler | 营销设计师 | 旧金山 | 47 | 2009-12-09 | $85,675 |
| Howard Hatfield | 办公室经理 | 旧金山 | 51 | 2008-12-16 | $164,500 |
| Hope Fuentes | 秘书 | 旧金山 | 41 | 2010-02-12 | $109,850 |
| Vivian Harrell | 财务总监 | 旧金山 | 62 | 2009-02-14 | $452,500 |
| Timothy Mooney | 办公室经理 | 伦敦 | 37 | 2008-12-11 | $136,200 |
| Jackson Bradshaw | 总监 | 纽约 | 65 | 2008-09-26 | $645,750 |
| Olivia Liang | 支持工程师 | 新加坡 | 64 | 2011-02-03 | $234,500 |
| Bruno Nash | 软件工程师 | 伦敦 | 38 | 2011-05-03 | $163,500 |
| Sakura Yamamoto | 支持工程师 | 东京 | 37 | 2009-08-19 | $139,575 |
| Thor Walton | 开发者 | 纽约 | 61 | 2013-08-11 | $98,540 |
| Finn Camacho | 支持工程师 | 旧金山 | 47 | 2009-07-07 | $87,500 |
| Serge Baldwin | 数据协调员 | 新加坡 | 64 | 2012-04-09 | $138,575 |
| Zenaida Frank | 软件工程师 | 纽约 | 63 | 2010-01-04 | $125,250 |
| Zorita Serrano | 软件工程师 | 旧金山 | 56 | 2012-06-01 | $115,000 |
| Jennifer Acosta | 初级 Javascript 开发人员 | 爱丁堡 | 43 | 2013-02-01 | $75,650 |
| Cara Stevens | 销售助理 | 纽约 | 46 | 2011-12-06 | $145,600 |
| Hermione Butler | 区域总监 | 伦敦 | 47 | 2011-03-21 | $356,250 |
| Lael Greer | 系统管理员 | 伦敦 | 21 | 2009-02-27 | $103,500 |
| Jonas Alexander | 开发者 | 旧金山 | 30 | 2010-07-14 | $86,500 |
| Shad Decker | 区域总监 | 爱丁堡 | 51 | 2008-11-13 | $183,000 |
| Michael Bruce | Javascript 开发人员 | 新加坡 | 29 | 2011-06-27 | $183,000 |
| Donna Snider | 客户支持 | 纽约 | 27 | 2011-01-25 | $112,000 |
| 姓名 | 职位 | 办公室 | 年龄 | 开始日期 | 薪资 |
下载
StateRestore 扩展可以通过 DataTables CDN 使用 我们的下载构建器 和我们 CDN 的直接访问 (链接如下) 获得。如果您更喜欢使用包管理器,您也可以从 NPM 和 NuGET 安装它。
功能
StateRestore 使用了两个主要的按钮。第一个 createState 用于创建新状态。当按下此按钮时,将创建一个新状态,该状态将反映表格的当前状态。然后可以通过按下 savedSates 按钮访问此状态。这将显示一个集合,其中包含每个已保存状态的拆分 stateRestore 按钮。
拆分按钮的主要操作将重新加载其各自的状态回 DataTable。触发下拉菜单将显示状态名称和另外三个次要操作按钮。第一个,saveState,将用表格的当前状态覆盖该按钮所代表的状态。第二个按钮,deleteState,将从存储中删除该状态。第三个,renameState,将根据用户在显示的模态框中输入的值重命名状态。
使用
除了核心功能集之外,StateRestore 还有一些配置选项。更基本的选项包括禁用新状态的创建、现有状态的保存、状态的重命名以及状态的删除。还可以为第一次加载表格的用户预定义状态。
一个主要的附加功能是创建模态框。当用户按下 createState 按钮时,它会向用户显示一个模态框。这将始终允许他们设置状态的名称,但也可以启用切换哪些 DataTables 元素保存在该状态中。例如,您可能只想保存 SearchBuilder 状态,而不保存列顺序。 stateRestore.toggle 允许这样做。在下面的示例中查看此行为。
| 姓名 | 职位 | 办公室 | 年龄 | 开始日期 | 薪资 |
|---|---|---|---|---|---|
| Tiger Nixon | 系统架构师 | 爱丁堡 | 61 | 2011-04-25 | $320,800 |
| Garrett Winters | 会计师 | 东京 | 63 | 2011-07-25 | $170,750 |
| Ashton Cox | 初级技术作家 | 旧金山 | 66 | 2009-01-12 | $86,000 |
| Cedric Kelly | 高级 Javascript 开发人员 | 爱丁堡 | 22 | 2012-03-29 | $433,060 |
| Airi Satou | 会计师 | 东京 | 33 | 2008-11-28 | $162,700 |
| Brielle Williamson | 集成专家 | 纽约 | 61 | 2012-12-02 | $372,000 |
| Herrod Chandler | 销售助理 | 旧金山 | 59 | 2012-08-06 | $137,500 |
| Rhona Davidson | 集成专家 | 东京 | 55 | 2010-10-14 | $327,900 |
| Colleen Hurst | Javascript 开发人员 | 旧金山 | 39 | 2009-09-15 | $205,500 |
| Sonya Frost | 软件工程师 | 爱丁堡 | 23 | 2008-12-13 | $103,600 |
| Jena Gaines | 办公室经理 | 伦敦 | 30 | 2008-12-19 | $90,560 |
| Quinn Flynn | 支持主管 | 爱丁堡 | 22 | 2013-03-03 | $342,000 |
| Charde Marshall | 区域总监 | 旧金山 | 36 | 2008-10-16 | $470,600 |
| Haley Kennedy | 高级营销设计师 | 伦敦 | 43 | 2012-12-18 | $313,500 |
| Tatyana Fitzpatrick | 区域总监 | 伦敦 | 19 | 2010-03-17 | $385,750 |
| Michael Silva | 营销设计师 | 伦敦 | 66 | 2012-11-27 | $198,500 |
| Paul Byrd | 首席财务官 (CFO) | 纽约 | 64 | 2010-06-09 | $725,000 |
| Gloria Little | 系统管理员 | 纽约 | 59 | 2009-04-10 | $237,500 |
| Bradley Greer | 软件工程师 | 伦敦 | 41 | 2012-10-13 | $132,000 |
| Dai Rios | 人事主管 | 爱丁堡 | 35 | 2012-09-26 | $217,500 |
| Jenette Caldwell | 开发主管 | 纽约 | 30 | 2011-09-03 | $345,000 |
| Yuri Berry | 首席营销官 (CMO) | 纽约 | 40 | 2009-06-25 | $675,000 |
| Caesar Vance | 售前支持 | 纽约 | 21 | 2011-12-12 | $106,450 |
| Doris Wilder | 销售助理 | 悉尼 | 23 | 2010-09-20 | $85,600 |
| Angelica Ramos | 首席执行官 (CEO) | 伦敦 | 47 | 2009-10-09 | $1,200,000 |
| Gavin Joyce | 开发者 | 爱丁堡 | 42 | 2010-12-22 | $92,575 |
| Jennifer Chang | 区域总监 | 新加坡 | 28 | 2010-11-14 | $357,650 |
| Brenden Wagner | 软件工程师 | 旧金山 | 28 | 2011-06-07 | $206,850 |
| Fiona Green | 首席运营官 (COO) | 旧金山 | 48 | 2010-03-11 | $850,000 |
| Shou Itou | 区域营销 | 东京 | 20 | 2011-08-14 | $163,000 |
| Michelle House | 集成专家 | 悉尼 | 37 | 2011-06-02 | $95,400 |
| Suki Burks | 开发者 | 伦敦 | 53 | 2009-10-22 | $114,500 |
| Prescott Bartlett | 技术作家 | 伦敦 | 27 | 2011-05-07 | $145,000 |
| Gavin Cortez | 团队主管 | 旧金山 | 22 | 2008-10-26 | $235,500 |
| Martena Mccray | 售后支持 | 爱丁堡 | 46 | 2011-03-09 | $324,050 |
| Unity Butler | 营销设计师 | 旧金山 | 47 | 2009-12-09 | $85,675 |
| Howard Hatfield | 办公室经理 | 旧金山 | 51 | 2008-12-16 | $164,500 |
| Hope Fuentes | 秘书 | 旧金山 | 41 | 2010-02-12 | $109,850 |
| Vivian Harrell | 财务总监 | 旧金山 | 62 | 2009-02-14 | $452,500 |
| Timothy Mooney | 办公室经理 | 伦敦 | 37 | 2008-12-11 | $136,200 |
| Jackson Bradshaw | 总监 | 纽约 | 65 | 2008-09-26 | $645,750 |
| Olivia Liang | 支持工程师 | 新加坡 | 64 | 2011-02-03 | $234,500 |
| Bruno Nash | 软件工程师 | 伦敦 | 38 | 2011-05-03 | $163,500 |
| Sakura Yamamoto | 支持工程师 | 东京 | 37 | 2009-08-19 | $139,575 |
| Thor Walton | 开发者 | 纽约 | 61 | 2013-08-11 | $98,540 |
| Finn Camacho | 支持工程师 | 旧金山 | 47 | 2009-07-07 | $87,500 |
| Serge Baldwin | 数据协调员 | 新加坡 | 64 | 2012-04-09 | $138,575 |
| Zenaida Frank | 软件工程师 | 纽约 | 63 | 2010-01-04 | $125,250 |
| Zorita Serrano | 软件工程师 | 旧金山 | 56 | 2012-06-01 | $115,000 |
| Jennifer Acosta | 初级 Javascript 开发人员 | 爱丁堡 | 43 | 2013-02-01 | $75,650 |
| Cara Stevens | 销售助理 | 纽约 | 46 | 2011-12-06 | $145,600 |
| Hermione Butler | 区域总监 | 伦敦 | 47 | 2011-03-21 | $356,250 |
| Lael Greer | 系统管理员 | 伦敦 | 21 | 2009-02-27 | $103,500 |
| Jonas Alexander | 开发者 | 旧金山 | 30 | 2010-07-14 | $86,500 |
| Shad Decker | 区域总监 | 爱丁堡 | 51 | 2008-11-13 | $183,000 |
| Michael Bruce | Javascript 开发人员 | 新加坡 | 29 | 2011-06-27 | $183,000 |
| Donna Snider | 客户支持 | 纽约 | 27 | 2011-01-25 | $112,000 |
| 姓名 | 职位 | 办公室 | 年龄 | 开始日期 | 薪资 |
完整的配置选项列表可以在 文档 中找到。
布局
StateRestore 使用 Buttons 扩展初始化并插入页面中。有关如何最好地将它们包含在页面中的信息,请参阅 Buttons 文档。您可以在 这里 找到所有 StateRestore 按钮的文档。
反馈
在发布时,StateRestore 不兼容 ColReorder、KeyTable 或 SearchPanes。对于 ColReorder 和 SearchPanes,这是我们将在未来修复的事情,但这需要对代码进行一些重写。这项工作已经开始,我们希望能够在不久的将来发布一个具有更高兼容性的版本。
虽然这只是一个 1.0.0 版本,但在过去几个月里已经进行了大量的测试和工作,以确保 StateRestore 是一个强大的扩展,可以在生产环境中使用。
我希望 StateRestore 可以增强您的项目,并且像往常一样,我们欢迎您对 StateRestore 的初始版本提供反馈 在论坛中,以及您认为将来会使扩展受益的任何其他功能!