【发布时间】:2017-04-15 02:17:40
【问题描述】:
在kendo ui(beta)对于Angular 2,如何在选择特定行时触发一个事件?行本身没有指令或组件;因此,如果没有行元素, (click)="triggeredFunction()" 将无法工作。
这是我的网格:
<kendo-grid [data]="gridData" [selectable]="true">
<kendo-grid-column field="ProductName">
<template kendoHeaderTemplate let-column let-columnIndex="columnIndex">
{{column.field}}({{columnIndex}})
</template>
</kendo-grid-column>
<kendo-grid-column field="ProductName">
<template kendoCellTemplate let-dataItem>
<kendo-dropdownlist [data]="listItems"></kendo-dropdownlist>
</template>
</kendo-grid-column>
</kendo-grid>
这是我的组件:
@Component({
selector: "ultron",
styleUrls: [String("./ultron.component.less")],
templateUrl: "./ultron.component.html",
})
export class UltronComponent {
private gridData: any[] = [{
"ProductID": 1,
"ProductName": "Chai",
"UnitPrice": 18.0000,
"Discontinued": true,
}, {
"ProductID": 2,
"ProductName": "Chang",
"UnitPrice": 19.0000,
"Discontinued": false,
}
}];
private listItems: Array<string> = ["@", "$", "#", "%"];
public triggeredFunction(){ ... }
}
【问题讨论】:
-
试试
[selectable]="'row'"docs.telerik.com/kendo-ui/api/javascript/ui/… -
@DanWilson,感谢您的快速回复。您发送给我的链接适用于 Angular 1(我需要 Angular 2)。所以..我把我的函数放在你提到的位置[selectable]="triggeredFunction()",它会在每次页面上发生变化时触发,当你点击一行时,你如何传递特定的行数据到组件?
-
我认为您需要将
'row'指定为可选组件并提供(change)处理程序,这将是您的triggeredFunction()。 demos.telerik.com/kendo-ui/grid/events -
@DanWilson。再次感谢您的回复。我将其更改为
[selectable]="'row'",并为(change)创建了一个处理程序,但没有任何反应。我不确定我是否将处理程序放置在错误的位置,它应该放置在哪里?您还不断发送指向 Angular 1 文档的链接,这不适用于 Angular 2。
标签: events angular kendo-ui kendo-grid kendo-ui-angular2