• 界面控件DevExtreme中文使用指南——如何构建 & 应用模板


    DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序,该套件附带功能齐全的数据网格、交互式图表小部件、数据编辑器等。

    模板允许您自定义DevExtreme UI组件,本文概述DevExtreme为实现和应用模板提供的功能。

    DevExtreme v22.1正式版下载

    默认模板

    默认模板基于数据源字段,可以通过从数据源对象中添加或删除特定字段来控制外观。例如,List UI组件项的默认模板包含文本、可见和禁用字段等,如果您将以下数组分配给UI组件项或dataSource属性,第一项将被禁用,第二项将被隐藏,它们都将有文本,而第三项将呈现自定义标记:

    JavaScript

    1. function customMarkup() {
    2. var d = document.createElement("div");
    3. d.innerHTML = "Oranges";
    4. return d;
    5. }
    6. var fruits = [
    7. { text: "Apples", disabled: true },
    8. { text: "Lemons", visible: false },
    9. { template: customMarkup }
    10. ];

    您可以使用支持默认模板和自定义模板的dxItem组件在标记中实现同样的效果,在这种情况下,不要设置UI组件的dataSource属性。

    HTML

    1. <div id="list">
    2. <div data-options="dxItem: { text: 'Apples', disabled: true }">div>
    3. <div data-options="dxItem: { text: 'Lemons', visible: false }">div>
    4. <div data-options="dxItem: { }">
    5. <i>Orangesi>
    6. div>
    7. div>

    JavaScript

    1. $(function() {
    2. $("#list").dxList({/* ... */});
    3. });

    默认模板和其中可用的字段取决于UI组件。

    自定义模板

    模板作为属性传递,其结尾是...Template(在jQuery, Angular,Vue中)或...Render/...Component (在React中)。

    每个模板都可以访问以下参数:

    • data:数据源对象或具有特定于特定模板的字段对象。
    • index:集合中的项目从零开始的索引,仅在集合UI组件模板中可用。
    • element:一个jQuery元素,表示正在自定义的UI组件元素,仅当您使用jQuery时可用。

    下面的代码展示了如何声明模板并使用这些参数,段代码为List UI组件声明了一个itemTemplate:

    index.js

    1. $(function() {
    2. $("#listContainer").dxList({
    3. items: [
    4. { itemProperty: "someValue" },
    5. // ...
    6. ],
    7. itemTemplate: function (data, index, element) {
    8. return index + " - " + data.itemProperty;
    9. // ===== or using the "element" parameter =====
    10. const $item = $("
      ").text(
    11. index + " - " + data.itemProperty
    12. );
    13. element.append($item);
    14. }
    15. });
    16. });

    注意:在组件的标记内,但在模板元素之外声明命名模板,非命名模板应该在模板元素中声明。

    集合UI组件还支持单个项的模板,如果使用单独的模板,不要指定UI组件的dataSource属性。

    index.js

    1. $(function() {
    2. $("#listContainer").dxList({
    3. items: [{
    4. template: function () {
    5. return $("").text("Item 1")
    6. }
    7. }, {
    8. template: function () {
    9. return $("").text("Item 2")
    10. }
    11. },{
    12. template: function () {
    13. return $("
      ").append(
    14. $("").text("Item with nested component"),
    15. $("
      ").dxButton({
    16. text: "Click me"
    17. })
    18. )
    19. }
    20. }]
    21. });
    22. });

    第三方模板引擎

    可以使用第三方模板引擎,但只能使用jQuery. DevExtreme支持以下开箱即用的模板引擎:

    要使用其中一个,将它的名称传递给DevExpress.setTemplateEngine(name)方法:

    HTML

    1. <div id="list">div>
    2. <script type="text/html" id="itemTemplate">
    3. script>

    JavaScript

    1. DevExpress.setTemplateEngine("underscore");
    2. $(function() {
    3. $("#list").dxList({
    4. // ...
    5. itemTemplate: $("#itemTemplate")
    6. });
    7. })

    还可以使用其他模板引擎,但在本示例中需要实现编译和呈现模板的函数,详见DevExpress.setTemplateEngine(options) 。

  • 相关阅读:
    百度API:通用文字识别(标准含位置版)c#
    【Linux】高级IO --- 多路转接,select,poll,epoll
    编程面试_字符串
    spring boot配置ssl证书,支持https访问
    2022谷粒商城学习笔记(二十一)购物车相关功能
    免费分享一套基于Springboot+Vue的医院管理系统,挺漂亮的
    【数据结构】二叉树的基本概念
    网络安全深入学习第三课——热门框架漏洞(RCE—Struts2远程代码执行)
    一文总结 C++ 常量表达式、constexpr 和 const
    SpringSecurity系列 - 12 自定义过滤器实现登录页面添加验证码的认证
  • 原文地址:https://blog.csdn.net/AABBbaby/article/details/127545271