2015 年 2 月 12 日星期四

编辑器 1.4 / 数据表 1.10.5

很高兴使用我在 2015 年的第一篇博客文章发布编辑器 1.4 和数据表 1.10.5。2015 年对于数据表项目来说,将是不平凡的一年,该项目计划增加许多有用的功能,而这两个新版本很好地奠定了基调。

在本文中,我将简要介绍每个新版本中的一些主要新功能 - 以后的文章将详细探讨其中的某些功能。

编辑器 1.4 和数据表 1.10.5 现已可用

编辑器 1.4

编辑器的第五个主要版本支持添加 .NET 平台。自编辑器的原始版本发布以来,它一直提供 PHP 库,以使 CRUD 操作尽可能简单。最初做出注重 PHP 的决策是相当容易的,这是为了最大化编辑器在市场上的影响力。但是,我们的目标始终是超越 PHP,现在,随着引入了数据表和编辑器的 .NET 库,这一目标已经实现。

此版本主要集中在 .NET 库的开发上,但 Javascript 和 PHP 组件也引入了新功能,并解决了所有已知错误。

同样,作为 1.4 版本的一部分,编辑器的打包和安装也得到了简化。现在有三个软件包,任何外部资源都是从 CDN 请求的,而不需要设置特定的路径结构

  • 适用于 PHP 的编辑器 - 包括 PHP 库和所有示例
  • 适用于 .NET 的编辑器 - 包括 .NET 库和所有示例
  • 仅适用于 JS+CSS 的编辑器 - 仅限客户端软件!

编辑器 1.4 是所有当前许可证持有者的免费升级。

.NET

适用于编辑器的 .NET 库提供与 PHP 库相同的功能,并具有非常相似的 API(尽管各不相同,以符合每个平台的最佳实践)。随着编辑器开发的进展,这两个库将并行开发并保持功能兼容性。

已经开发出使用 .NET 搭配编辑器的详尽文档。示例和文档的重点主要在于将Web API与编辑器的 Ajax 调用一起使用,因为 Web API 非常适合编辑器这样的用例,但您也可以在需要时使用更传统的 MVC 控制器来响应 Ajax 请求。

编辑器的 .NET 软件包是一个 Visual Studio 项目,它可以让您迅速了解编辑器。只需下载该软件包,对其进行配置以访问您的数据库,并在您的数据库上安装编辑器演示 SQL 即可!完整的安装说明现已推出。

生成器

编辑器的生成器已更新为生成 PHP 软件包或 Visual Studio 软件包,具体取决于您选择的平台,这让在任一平台上手动开始变得非常容易。只需输入您想要的字段,生成器就会为客户端和服务器端创建您需要的所有内容。

Generator 当前创建的 SQL 支持 SQL Server/Azure、MySQL 和 Postgres 数据库。将来会添加 Oracle 和 SQLite 等其他数据库。

从属方法

客户端编辑器的 dependent() 方法新增了一种能力,可以根据用户输入值轻松地有条件地更新表单。例如,考虑如下常见场景:当选择特定下拉输入或单选框值时,需要显示一个附加选项 - dependent() 现在会让这一切变得轻而易举。

在以下示例中,当 location 字段的值设为“其他”时,将显示“external_location”字段 - 否则它将被隐藏

editor.dependent( 'location', function ( val, data, callback ) {
    return val === 'other' ?
        { show: 'external_location' } :
        { hide: 'external_location' };
} );

dependent() 可以通过返回的数据来控制字段的可见性、选项和值。此外,它可以使用,如上所示,内部回调或外部使用 Ajax 请求来获取该控件数据。

有了 dependent(),可以像创建简单表单一样快速地创建复杂表单!

其他功能

还有一些新功能,比如在 Editor 类中使用复杂条件和子查询的能力,以及对于库的服务器端 get 和 set 值的精细控制。这些话题相当复杂,因此我将在以后的文章中探讨它们!

DataTables 1.10.5

最新的 DataTables 版本虽然主要是一个 bug 修复版本,但它也引入了使用 HTML data-* 属性配置 DataTable 的新功能。构造 DataTable 时,它现在将读取 data-* 属性,并将其用作初始化选项。此功能是一个常见的需求功能,也是我一直在想要添加的功能 - 非常感谢 greenbender 为实现这个功能提出了一种非常简单的方法!

使用 data-* 属性作为初始化选项非常简单,您只需记住两条规则

  • 属性短划线名称将自动转换为驼峰表示法。例如,pageLength 选项将写成属性 data-page-length
  • 如果需要将对象或数组值用作值,则该值必须是有效的 JSON。这意味着双引号必须用于该属性中,因此单引号用于该属性本身(这是 jQuery 为此功能实现其 $().data() 方法的方式)。

不仅可以将表级别配置属性应用于 table 标签,还可以使用每列标题单元格中的属性来应用列选项。

例如,请考虑以下 HTML

<table data-order='[[ 1, "asc" ]]' data-page-length='25'>
    <thead>
        <tr>
            <th>Name</th>
            <th>Position</th>
            <th>Office</th>
            <th>Age</th>
            <th>Start date</th>
            <th data-class-name="priority">Salary</th>
        </tr>
    </thead>
</table>

这在功能上与使用以下 Javascript 相同

$('table').DataTable( {
    order: [[ 1, "asc" ]],
    pageLength: 25,
    columnDefs: [ {
        targets: -1,
        className: "priority"
    } ]
} );

这种配置选项的方法将优先于通过 Javascript 配置的参数(允许 Javascript 配置对页面是全局的,而这是针对特定表的)。此外,初始化文档已更新以反映此新选项。

下载

可在 DataTables CDN 上获取 DataTables 1.10.5,也可以从 下载页面 下载到本地主机。

有关 1.10.5 中出现的新功能和错误修复的完整叙述,请参阅 发行说明

尽情享用!

开发 DataTables 和 Editor 始终是一件乐事,我对这些最新版本感到非常激动。如果您遇到任何问题或有任何疑问,请 在论坛中打开一个新主题。同样,如果您仅仅想分享如何使用它们,请告诉我们!