0

Grid 的框架中是否存在类似 RowTemplate 的东西?

我需要附加(contextmenu)="onContextMenu($event, dataItem)"到表格行,以便在右键单击该行时显示上下文菜单。

我还没有找到任何方法可以做到这一点。

我尝试将上下文直接添加到每个 kendoCellTemplate 并将上下文菜单附加到每一列,但它只会引发错误。

<kendo-grid-column field = "poNum">
    <template kendoCellTemplate let-dataItem (contextmenu)="onContextMenu($event, dataItem)">
        {{ dataItem.poNum }}
    </template>
</kendo-grid-column>

我尝试将 div 添加到每个 kendoCellTemplate 并添加上下文菜单,它可以工作 - 但这是可以理解的混乱,并且 div 的宽度拒绝填满单元格的空间,在右键单击的位置留下巨大的空白工作。

<kendo-grid-column field = "poNum">
    <template kendoCellTemplate let-dataItem>
        <div (contextmenu)="onContextMenu($event, dataItem)">
            {{ dataItem.poNum }}
        </div>
    </template>
</kendo-grid-column>

任何帮助,将不胜感激。

4

1 回答 1

2

这看起来是一个旧帖子,但我找到了一种方法来做到这一点。与 bootstrap 4 结合使用(但它应该与任何带有 flex-wrap 的 flex 盒的 div 一起使用)。

它不是最漂亮的,但它可以按照您的要求完成工作:

您通常设置网格,然后为每一列:

<kendo-grid-column title="Option">
    <template kendoGridCellTemplate let-dataItem>
        <div class="row no-margin" (contextmenu)="onRightClick($event, dataItem)">
            {{dataItem.Name}}
        </div>
    </template>
</kendo-grid-column>

由于行类将占用全部空间,因此 RC 事件应按预期工作。

如果要确保高度不是问题,则需要将 .k-grid td 设置为没有填充,然后将填充(8px)添加到行 div 否则行的边缘会出现小间隙上下文菜单不会触发。

于 2017-02-20T22:31:10.980 回答