Kendo 网格命令栏-如何用图标替换按钮?

Kendo Grid command column - how to replace buttons with icons?

我已锁定网格中的命令列(见下图)。

我想用自定义图标(或 Kendo 提供的一组图标)替换默认按钮。

我怎样才能轻松做到?

我试图在文档中找到一些东西,但没有成功。

感谢您的任何建议。

编辑:添加按钮代码

command:
                    [
                      {
                        name: "destroy",
                        text: $translate.instant('REMOVE'),
                        className: "btn-destroy"

                      },
                      {
                        name: "detail",
                        text: $translate.instant('DETAIL'),
                        click: function(e) {
                          var clickedRow = this.dataItem($(e.currentTarget).closest("tr"));
                          var id = clickedRow.id;
                          GlobalHelperService.redirectTo("/milestone-sequences/detail/"+id);
                          return false;
                        }
                      }
                    ],

如果你不想操纵由 KendoUI 生成的 HTML 你可以简单地使用定义和 CSS.

如果您的命令定义类似于:

columns: [
    { 
        command: [
            { 
                name: "onabai",
                text: " ",
                click: function (e) {
                    alert ("clicked");
                }
            },
            ...
        ] 
      },
      ...

您可以定义以下 CSS 以将按钮更改为仅您的自定义图标:

.k-grid-onabai, .k-grid-onabai:hover {
    background-image: url(http://cdn.kendostatic.com/2014.3.1316/styles/Default/sprite_2x.png);
    background-position: 192px -248px;
    min-width: 32px !important;
    min-height: 32px !important;
}

即将 text 设置为空 space ( ) 并且如果命令的 nameonabai 您需要在那里定义样式 k-grid-onabaik-grid-onabai:hover.

A 运行 示例如下:

$(document).ready(function(e) {
  $("#grid").kendoGrid({
    columns: [
      { field: "name" },
      { 
        command: [
          { 
            name: "onabai",
            text: " ",
            click: function (e) {
              alert ("clicked");
            }
          }
        ] 
      }
    ],
    dataSource: [ { name: "Jane Doe" } ]
  });
});
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.3.1316/styles/kendo.common.min.css">
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.3.1316/styles/kendo.default.min.css">
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://cdn.kendostatic.com/2014.3.1316/js/kendo.web.min.js"></script>
<div id="grid"></div>

<style>
  .k-grid-onabai, .k-grid-onabai:hover {
    background-image: url(http://cdn.kendostatic.com/2014.3.1316/styles/Default/sprite_2x.png);
    background-position: 192px -248px;
    min-width: 32px !important;
    min-height: 32px !important;
  }
</style>

您还可以在命令中使用 imageClass 或 iconClass。我不确定有什么区别,但两者似乎都有效。

感谢 OnaBai,感谢我可以 fork 的工作示例。

请注意,我添加了 FontAwesome 样式表以通过 class 轻松更换图标。

$(document).ready(function(e) {
  $("#grid").kendoGrid({
    columns: [
      { field: "name" },
      { 
        command: [
          { 
            name: "onabai",
            text: "&nbsp;",
            imageClass: "fa fa-trash",
            //iconClass: "fa fa-trash",
            click: function (e) {
              alert ("clicked");
            }
          }
        ] 
      }
    ],
    dataSource: [ { name: "Jane Doe" } ]
  });
});
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.3.1316/styles/kendo.common.min.css">
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.3.1316/styles/kendo.default.min.css">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://cdn.kendostatic.com/2014.3.1316/js/kendo.web.min.js"></script>
<div id="grid"></div>

简单的方法:只需在文本 属性 上添加 bootstrap 图标并用“”

覆盖 imageClass 和 iconClass
command: [{
            name: "destroy",
            text: "<span class='glyphicon glyphicon-remove'></span>",
            imageClass: "",
            iconClass: "",
           }]