【发布时间】:2020-02-17 04:43:11
【问题描述】:
我有这个kendo grid demo,在outletID 列上,我想使用带有复选框的kendoTreeView,因此可以选择多个outletID。但是当编辑它时显示 undefined 结果,显示outletName 的模板也不起作用。感谢您的帮助
【问题讨论】:
标签: kendo-ui kendo-grid kendo-treeview
我有这个kendo grid demo,在outletID 列上,我想使用带有复选框的kendoTreeView,因此可以选择多个outletID。但是当编辑它时显示 undefined 结果,显示outletName 的模板也不起作用。感谢您的帮助
【问题讨论】:
标签: kendo-ui kendo-grid kendo-treeview
您的树需要设置dataTextField 和dataValueField。
您的列模板不知道在哪里查找 outletName。剑道支持1-N relationships,但我不知道N-N。
模板中的数据是网格的当前行。对于第一行,那将是 {"id":"1","outletID":"LA2,LA3","accountName":"Data1"}。您需要自己处理这些数据。例如:
template: "#= (data.outletID) ? data.outletID.split(',')
.map(x => TreeData.find(y => y.outletID == x)['outletName']) : '' #"
对于编辑器,dropDownTree 的值为an array。你的行有一个字符串。你需要做两件事:
1 .在函数outletTree中初始化编辑器的值:
if (options.model) {
ddt.value((options.model[options.field] || '').split(','))
}
2 。当 dropDownTree 的值发生变化时,更新您的网格行:
change: e => {
const value = e.sender.value();
console.log(value)
options.model.set(options.field, value.join(','))
}
这是一个更新的道场:https://dojo.telerik.com/@GaloisGirl/oYEGerAK。 “更新”按钮还不起作用,可能是因为数据源必须支持版本。 Here 是如何在本地数据上做的。
【讨论】:
dataTextField / dataValueField 解决方案,但似乎我仍然遇到模板不显示outletName 甚至没有检查的问题,需要帮助,我在这里update my demo
unchecked outletName 时它没有更新吗? ,但是当我 check 或添加 outletName 时它工作正常。 update demo with working Update
<input id="outletID" name="outletID" /> 中删除名称 - 它会导致剑道进行自己的绑定并干扰我们的绑定。