ng-template中的剑道角度网格列传递数据项

Posted

技术标签:

【中文标题】ng-template中的剑道角度网格列传递数据项【英文标题】:Kendo angular grid column pass dataitem in ng-template 【发布时间】:2018-11-21 17:09:44 【问题描述】:

我正在使用带有 Kendo 控件的 Angular 5.2。在网格内部,我有一个带有 click 属性的按钮。我想将 PID 值作为参数传递给 showwindow 函数

这是代码示例:-

 <kendo-grid [data]="gridView"
                (pageChange)="pageChange($event)"
                [selectable]="true"
                [kendoGridSelectBy]="mySelectionKey"
                [selectedKeys]="mySelection"
                style="width:1100px;">
        <kendo-grid-checkbox-column showSelectAll="true"  media="(min-width: 10px)">
            <ng-template kendoGridHeaderTemplate let-dataItem>
                <input type="checkbox"
                       name="selectAll"
                       (change)="selectAllRows($event)"
                       [checked]="allRowsSelected" />
            </ng-template>
        </kendo-grid-checkbox-column>
        <kendo-grid-column field="PID" title="User ID"  media="(min-width: 10px)">
        </kendo-grid-column>

        <kendo-grid-command-column title="View file"  media="(min-width: 10px)">
            <ng-template kendoGridCellTemplate let-isNew="isNew">
                <button (click)="showwindow(pass the PID value here)">
                    <img src="../../../../../Images/view.png" />
                </button>
            </ng-template>
        </kendo-grid-command-column>
    </kendo-grid>

这是我要更改的按钮单击处理程序:-

 <button (click)="showwindow(pass the PID value here)">
     <img src="../../../../../Images/view.png" />
  </button>

请提出解决方案。

【问题讨论】:

【参考方案1】:

您可以通过kendoGridCellTemplate 指令的模板上下文访问当前行dataItem(和其他变量)。 (API Reference)

<kendo-grid-command-column ...>
    <ng-template kendoGridCellTemplate let-dataItem>
        <button (click)="showwindow(dataItem.PID)">
            <img src="../../../../../Images/view.png" />
        </button>
    </ng-template>
</kendo-grid-command-column>

【讨论】:

我只是好奇let-... 的语法是什么?有可能在某处读到它吗?好像在文档中遇到了let-...的解释,但是再也找不到了。 @SasukeUchiha ngTemplateOutlet Docs 有一个例子。但基本上你传入context 的所有内容都可以通过let- 访问。至于剑道,他们的文档做得很好,所以你应该看看那里有什么。 知道了。谢谢。 如何在kendo-grid-command-column 中访问dataItem?我想使用“dataItem”进行条件样式。 @hirani89 您不能直接在kendo-grid-command-column 中访问dataItem。你总是需要使用 ng-templatekendoGridCellTemplate 指令,如我的示例所示。

以上是关于ng-template中的剑道角度网格列传递数据项的主要内容,如果未能解决你的问题,请参考以下文章

在角度控制器中动态创建剑道网格列

ng-template 错误:模板上下文未定义名为 ...(剑道网格)的成员

剑道列过滤器内的角度材料日期选择器问题

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

更改剑道网格角度的模式

剑道网格自定义列菜单