如何在剑道中隐藏命令。自定义?

时间:2021-05-04 22:18:52

标签: javascript c# kendo-ui telerik

我正在构建一个局部视图,我必须根据主视图中的值隐藏一个按钮,列可以很好地隐藏它们,但是隐藏按钮时它不起作用。

我有以下功能

function onSelect(e) {    
gridEstudiantesShowHide(false);
if ($('input[name="hd_idServicio"]').val($("#ddlServicios").val()) != "") {       

    if ($("#ddlServicios").val().split("#")[4] === "0") {            
        var grid = $("#Grid").data("kendoGrid");
        grid.hideColumn(4);
    }
    else {
        var grid = $("#Grid").data("kendoGrid");
        grid.showColumn(4);
       
    }
    if ($("#ddlServicios").val().split("#")[2] == "4" || $("#ddlServicios").val().split("#")[2] == "9") {
        var grid = $("#Grid").data("kendoGrid");
        grid.showColumn(5);
    }
    else {
        var grid = $("#Grid").data("kendoGrid");
        grid.hideColumn(5);
    }
    if ($("#ddlServicios").val().split("#")[3] == "1") {
        var grid = $("#Grid").data("kendoGrid");
        grid.hideColumn(3);
   
        columns: [
            { field: "name" },
             { command: [{ name: "AsignarGrupo", visible: false}] }                               
        ]

    }
    else {
        console.log("Muestra botón");
        var grid = $("#Grid").data("kendoGrid");
        grid.showColumn(3); 
   { command: [{ name: "AsignarGrupo", visible: false}] }   


    }

}
else {
   
}

它只在隐藏列时有效,我已经阅读了所有的 dojo 文档,但无济于事。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

列命令中的属性 visible 需要一个必须返回布尔值的函数,因此您可以在列定义中执行此操作:

{ command: [{ name: "AsignarGrupo", visible: function(dataItem) { return $("\\#ddlServicios").val().split("\\#")[3] == "1"; } }] }

演示:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>Kendo UI Snippet</title>

    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2021.1.330/styles/kendo.default-v2.min.css"/>

    <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
    <script src="https://kendo.cdn.telerik.com/2021.1.330/js/kendo.all.min.js"></script>
</head>
<body>
  <select id="ddlServicios">
    <option value="1#1#1#1">Opt 1</option>
  </select>
<div id="grid"></div>
<script>
  
$("#grid").kendoGrid({
  columns: [
    { field: "name" },
    { command: "destroy" }, // displays the built-in "destroy" command
    { command: [{ name: "test", visible: function(dataItem) { return $("\\#ddlServicios").val().split("\\#")[3] == "1"; } }] }
  ],
  editable: true,
  dataSource: [ { name: "Jane Doe" } ]
});
</script>
</body>
</html>

Dojo