我一直在寻找一种方法,无论多么糟糕,将Gantt图的任务模板连接到ObservableObject以利用MVVM系统。我知道编辑模板支持开箱即用,但我一直在努力使其与任务模板一起使用。
感谢Josh Eastburn和his fiddle,我发现Kendo Grid中的详细模板可以通过挂钩函数detailInit
绑定到MVVM。
$("#a-kendo-grid").kendoGrid({
detailTemplate: kendo.template( $("#detail-template").html() ),
detailInit: function(e) {
kendo.bind(e.detailRow, e.data); // this line produces the binding
}
})
我乐观地尝试在实例化Kendo Gantt时更改参数名称以引用任务而不是详细信息模板,但它似乎没有实现。
有没有人遇到另一个黑客/技巧将甘特图的任务模板绑定到MVVM?
答案 0 :(得分:0)
我一直与Telerik支持联系。他们声明他们没有计划在甘特图任务及其代表时间线界面中的任务模板之间实现MVVM连接。
然而,我找到了一种创建MVVM绑定的hacky方法:
HTML
=INDEX(B2:B10,MATCH(E2&MAX(IF(A2:A10=E2,C2:C10)),INDEX(A2:A10&C2:C10,0),0))
的JavaScript
<div id="gantt"></div>
<script id="task-template" type="text/x-kendo-template">
<div>
<div>
<span data-bind="text: title"></span>
</div>
</script>
在甘特图绑定到新数据之后,此代码段将把DOM中呈现的任务模板元素挂钩到其代表性的Task对象。此事件触发例如:发布第一次数据加载,以及每次用户保存对甘特图任务的更改。