如何仅在Kendo Grid特定行中显示操作列按钮?
实现Kendo Grid特定行显示操作按钮的方案
当然支持啦!Kendo Grid提供了非常灵活的配置方式来实现仅在特定行显示操作按钮的需求,下面给你两种常用且易上手的方案:
方案一:在模板中嵌入条件判断
你可以利用Kendo的模板语法,在按钮的模板代码里加入条件判断,只有当当前行数据满足指定条件时,才渲染对应的按钮。
修改后的代码示例:
command: [ { title: "Accept", template: "# if (data.Status === 'Pending') { # <button title='Accept' class='btn btn-success btn-flat' onclick='AcceptClick(this)'><span class='fa fa-check'></span></button> # } #" }, { title: "Reject", template: "# if (data.Status === 'Pending') { # <button title='Reject' class='btn btn-danger btn-flat' onclick='RejectClick(this)'><span class='glyphicon glyphicon-remove'></span></button> # } #" } ], title: "Action", width: "160px"
这里的data代表当前行的数据模型,你可以把data.Status === 'Pending'替换成你实际需要的判断逻辑(比如检查某字段是否为特定值、是否满足某个状态等),只有条件成立时才会渲染按钮。
方案二:使用command的visible配置函数
Kendo Grid的command项支持visible属性,你可以传入一个函数,该函数接收当前行的数据项作为参数,返回true或false来控制按钮是否显示。
修改后的代码示例:
command: [ { title: "Accept", template: "<button title='Accept' class='btn btn-success btn-flat' onclick='AcceptClick(this)'><span class='fa fa-check'></span></button>", visible: function(dataItem) { // 根据实际需求编写判断逻辑,示例:仅当状态为Pending时显示 return dataItem.Status === 'Pending'; } }, { title: "Reject", template: "<button title='Reject' class='btn btn-danger btn-flat' onclick='RejectClick(this)'><span class='glyphicon glyphicon-remove'></span></button>", visible: function(dataItem) { // 可以给不同按钮设置不同的判断条件 return dataItem.Status === 'Pending' && dataItem.CanReject; } } ], title: "Action", width: "160px"
这种方式的优势是逻辑和模板分离,代码更清晰,而且可以给不同的按钮设置独立的显示条件,灵活性更高。
小提示
如果需要对整个“Action”列的显示/隐藏做控制,也可以在列配置里添加visible函数,但针对单个按钮的显示控制,上面两种方案是最直接的。
内容的提问来源于stack exchange,提问作者chaitanya mokkapati
相关产品推荐
相关产品推荐

