我在我的项目中使用Typescript和Kendo UI。它工作正常,直到我想通过调用网格模板中的函数来自定义网格数据。我将模板更新为:
<td>#= Simple(Id) #</td>
并添加了该功能。它工作正常并在单元格中显示id。
<script>
function Simple(id) {
return id;
}
</script>
问题是我想在我的Typescript类中定义Simple方法,但是我不能正确地获得该函数的范围。我试图将它添加到我的视图类或dataSource,但没有任何效果。由于函数未定义,因此无法呈现列。我不想定义全局函数。如何将typescript类中定义的函数绑定到网格?
答案 0 :(得分:0)
通常,传递给模板的内容是Kendo模型的实例,因此您必须在kendo.data.Model.fn
上定义方法。
答案 1 :(得分:0)
您需要在全局范围内声明它。
def test_should_create_project(pro_profile, user_profile):
assert user_profile.user != pro_profile.user
参考:Not able to call function in typescript from kendo template in kendotreelist
答案 2 :(得分:0)
我知道这是一个古老的问题,但我遇到了类似的问题并找到了解决方法。
在你的cshtml文件中。你需要引用你生成的javascript文件,然后像这样实例化对象
<script src="@Url.Content("~/Scripts/Notifications/notifications.js")"> </script>
<script>
var fe_head = new Fe.Upsm.Head();
var fe_n = new Fe.Upsm.Notifications();
</script>
然后在你的打字稿文件中我使用名称空间和类似
namespace Fe.Upsm {
export class Notifications {
.. methods
NotificationsGrid_onDataBound(){
... code here
}
... more methods
}
}
在剃刀中
@(Html.Kendo().Grid<NotificationViewModel>()
.Name("NotificationsGrid")
.AutoBind(false)
.NoRecords("No notifications yet")
.TableHtmlAttributes(new { @class = "table" })
.Events(m => m.DataBound("fe_n.NotificationsGrid_onDataBound")) // because you have instantiated your object you then qualify it the object name you have newed up the instance of and the method
..... more grid values
希望如果遇到任何问题,这可以解决任何问题