Javascript 剑道UI网格:如何有条件地添加一个';创建';动态按钮工具栏

Javascript 剑道UI网格:如何有条件地添加一个';创建';动态按钮工具栏,javascript,angularjs,kendo-ui,kendo-grid,Javascript,Angularjs,Kendo Ui,Kendo Grid,我想根据用户权限有条件地将工具栏添加到我的剑道UI网格中。下面是我的代码片段: <div kendo-grid="ctrl.kendoGrid" id="myGrid" k-height="450" k-options="ctrl.genevaIndexSwapMappingGridOptions"></div> 是否有一种方法可以根据特定条件在网格上动态创建和渲染工具栏 使用的参考资料: 编辑: 我实现了@DontVoteMeDown的解决方案,但它破坏了另一个功能。

我想根据用户权限有条件地将工具栏添加到我的剑道UI网格中。下面是我的代码片段:

<div kendo-grid="ctrl.kendoGrid" id="myGrid" k-height="450" k-options="ctrl.genevaIndexSwapMappingGridOptions"></div>
是否有一种方法可以根据特定条件在网格上动态创建和渲染工具栏

使用的参考资料:

编辑: 我实现了@DontVoteMeDown的解决方案,但它破坏了另一个功能。我正在为某些字段使用自定义编辑器。“创建”弹出对话框打开时,无法呈现自定义剑道控件。在列配置中,我为字段指定自定义编辑器模板,如下所示:

{
    field: "RS_RefIndex_GvId", title: "Rate Schedule – Reference Index",
    editor: function (container, options) {
                $('<input kendo-drop-down-list data-value-primitive="true" required k-on-change="dataItem.dirty=true" k-data-source="ctrl.rateScheduleRefIndexList" ng-model="dataItem.RS_RefIndex_GvId" k-option-label="\'Select...\'" />').appendTo(container);
            }
},
请提供相关帮助?

使用Grid的方法更改初始化选项:

grid.data("kendoGrid").setOptions({
    toolbar: [{ name: "Create" }]
});

使用Grid的方法更改初始化选项:

grid.data("kendoGrid").setOptions({
    toolbar: [{ name: "Create" }]
});

您是如何创建网格的?使用js?否。网格控件在标记中定义,网格选项在角度控制器中定义。我不明白您为什么要在该点添加“创建”按钮,您可以在创建网格之前创建它(我不确定您是如何做到的),然后,如果用户不是管理员,您可以在数据绑定中显示/隐藏甚至删除按钮。您是如何创建网格的?使用js?否。网格控件在标记中定义,网格选项在角度控制器中定义。我不明白您为什么要在该点添加“创建”按钮,您可以在创建网格之前创建它(我不确定您是如何做到的),然后在数据绑定中,如果用户不是管理员,您可以显示/隐藏甚至删除按钮。我无法在数据绑定或数据绑定事件中使用setOptions方法。控件在无限循环中运行。有什么解决办法吗?这很有帮助,但它破坏了另一个功能。我正在为某些字段使用自定义编辑器。“创建”弹出对话框打开时,无法呈现自定义剑道控件。在我的编辑中有更多关于这一点的内容。@Lucifer一个问题:如果你像我在第一个演示中那样调用
setOptions
,它也会破坏你的功能?是的,通过按钮调用setOptions也无法呈现自定义剑道编辑器控件。@Lucifer好吧,idk。这将是很好的,如果你张贴在剑道论坛,这样他们就可以说,如果这是一个问题或预期的行为。同时你可以试穿一下。在这个演示中,我已经用按钮初始化了网格,然后根据需要管理它。我无法在数据绑定或数据绑定事件中使用setOptions方法。控件在无限循环中运行。有什么解决办法吗?这很有帮助,但它破坏了另一个功能。我正在为某些字段使用自定义编辑器。“创建”弹出对话框打开时,无法呈现自定义剑道控件。在我的编辑中有更多关于这一点的内容。@Lucifer一个问题:如果你像我在第一个演示中那样调用
setOptions
,它也会破坏你的功能?是的,通过按钮调用setOptions也无法呈现自定义剑道编辑器控件。@Lucifer好吧,idk。这将是很好的,如果你张贴在剑道论坛,这样他们就可以说,如果这是一个问题或预期的行为。同时你可以试穿一下。在这个演示中,我已经用按钮初始化了网格,然后根据需要管理它。
dataBound: function () {
                if (!ctrl.isSetOptions) {
                    if (DataSvc.isUserAdmin) {
                        ctrl.isSetOptions = true;
                        ctrl.kendoGrid.setOptions({ toolbar: [{ name: 'create', text: 'Add Geneva Index Swap Mapping', }] });
                    }
                }
                if (DataSvc.isUserAdmin) {
                    ctrl.kendoGrid.showColumn("CommandColumn");
                }
                else {
                    ctrl.kendoGrid.hideColumn("CommandColumn");
                }
            },
grid.data("kendoGrid").setOptions({
    toolbar: [{ name: "Create" }]
});