如何从编辑器中排除不在数据源中的剑道网格字段?

Posted

技术标签:

【中文标题】如何从编辑器中排除不在数据源中的剑道网格字段?【英文标题】:How to exclude a kendo grid field that is not in the datasource, from the editor? 【发布时间】:2014-11-22 16:24:34 【问题描述】:

首先,我知道如何通过在 kendo 数据源中将字段标记为“可编辑:假”来排除该字段。

我在 Kendo UI 网格中添加了一个带有按钮的列,以打开一个文件上传窗口。 此列不在数据源中! 但是,该列现在也在弹出编辑器中显示为带有“文件上传”作为标签的 tetxtbox(也就是列标题名称,如您所见在屏幕截图中)。

如何在弹出编辑器中排除/隐藏此列? 我正在使用剑道 UI 版本:“2014.2.716”

感谢您的帮助!

这是我将列添加到网格中的方法,请参见最后一行:

columns: [
             field: "Id", hidden: true ,
             field: "Name", title: ........ ,
             field: "EnteredBy", title: "Entered by", hidden: true ,
             field: "UpdatedOn", type: "date",.....,
             field: "UpdatedBy", title: "......,
             command: ["edit", "destroy"], title: "Action", width: "80px" ,
             field: "Upload", title: "File Upload", width: "80px", template: '<button class="k-button" onClick="uploadFiles(#=Id#)">Upload<br/>Files</button>' 
        ],

这是一个屏幕截图,显示了网格列中每个单元格中带有“上传文件”按钮的“文件上传”列。

这是来自弹出编辑器的屏幕截图,其中包含我想隐藏的字段。

【问题讨论】:

【参考方案1】:

我认为您应该将该额外的列设为custom command,而不是为其指定“字段”。

类似:

columns: [
    ...
    
        command:  text: "Upload", click: uploadFiles,
        title: "File Upload",
        width: "80px"
    
]

然后uploadFiles 函数将传递一个点击事件,从该事件中它可以到达被点击的元素。您可以将data-id 属性添加到行,以从uploadFiles 函数中获取其Id,就像他们在上面链接的演示中所做的那样。

【讨论】:

非常感谢!我实际上看到了自定义命令演示,但我错过的是我需要第二个命令行。这就是我现在所拥有的: field: "UpdatedBy", title: "Updated By", hidden: true , command: ["edit", "destroy"], title: "Action", width: "80px" , command: text: "上传文件", click: uploadFiles , title: "文件上传", width: "75px" ],

以上是关于如何从编辑器中排除不在数据源中的剑道网格字段?的主要内容,如果未能解决你的问题,请参考以下文章

在详细单击列标题时编辑剑道网格中的主列标题

Kendo UI - 如何在编辑时使特定字段只读,同时在剑道网格中创建可编辑?

剑道网格弹出编辑器不会关闭

剑道网格 - 如何在添加/编辑子行时访问父行模型(详细网格)

如何使用 jquery 函数编辑剑道网格中的特定绑定列

如何制作可编辑的假剑道网格特定列?