【问题标题】:Kendo UI Angular 2 - RowTemplate?Kendo UI Angular 2 - RowTemplate?
【发布时间】:2016-09-27 22:39:34
【问题描述】:

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>

任何帮助将不胜感激。

【问题讨论】:

  • 嗨 GlacialFlames,你有没有解决过这个问题?
  • 很遗憾没有。我还没有找到在行级别上完成任何事情的解决方案。

标签: angular kendo-ui kendo-ui-angular2


【解决方案1】:

这看起来是一个旧帖子,但我已经找到了一种方法来做到这一点。与 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 否则边缘会有小间隙该行的上下文菜单不会触发。

【讨论】:

  • 理想情况下,我们不必将它放在每一列上,但这是迄今为止唯一有效的解决方案! Telerik 正在开发他们自己的上下文菜单,我相信它会在五月到期。在此之前这是一个有效的解决方案。谢谢!
猜你喜欢
  • 2018-10-25
  • 2013-07-16
  • 1970-01-01
  • 2018-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-14
  • 2017-04-16
相关资源
最近更新 更多