Kendo ui kendojs模板数据绑定单击事件不工作
我使用的是KendoJS网格,我的.js文件中有以下代码:Kendo ui kendojs模板数据绑定单击事件不工作,kendo-ui,kendo-grid,Kendo Ui,Kendo Grid,我使用的是KendoJS网格,我的.js文件中有以下代码: var viewModel = kendo.observable({ people: new kendo.data.DataSource(...), isActive:true, friends: new kendo.data.DataSource(...), selectionChanged: function(){... } }); $(document).ready(function
var viewModel = kendo.observable({
people: new kendo.data.DataSource(...),
isActive:true,
friends: new kendo.data.DataSource(...),
selectionChanged: function(){...
}
});
$(document).ready(function () {
kendo.bind($("#sampleGridContainer"), viewModel);
});
在我的.html文件中,我有一个剑道网格:
<div id="sampleGridContainer">
<div data-role="grid"
data-columns="[...]"
data-editable="{ 'mode': 'popup', 'template': kendo.template($('#sampleTemplate').html()) }"
data-bind="source: people"></div>
</div>
<script id="sampleTemplate" type="text/x-kendo-template">
<form id="sampleForm">
...
<div data-container-for="somedropdown" class="k-edit-field">
<input name="somedropdown" id="somedropdown"
data-role="dropdownlist"
data-type="text"
data-text-field="name"
data-value-field="value"
data-bind="value: someValue, visible: isActive, source: friends, click: selectionChanged" />
</div>
...
</form>
</script>
现在,在我的下拉输入元素中,someValue、isActive和friends变量正常工作-事实上,下拉列表显示得很好。但问题是没有调用click event selectionChanged。如果我从模板中删除它,事件将开始工作,但我的问题是,当同一范围内的所有其他变量都可以在模板中访问时,为什么不调用event selectionChanged
非常感谢您的帮助 我也遇到了这个问题,我的解决方法是在网格的编辑事件上初始化kendoDropDownList
edit: function (e){
e.container.find("input[name='somedropdown']").kendoDropDownList({
dataTextField: "name",
dataValueField: "value",
data-bind="value: viewModel.someValue, visible: viewModel.isActive, source: viewModel.friends, click: viewModel.selectionChanged"
});
}
然后,html将如下所示:
<div data-role="grid"
data-columns="[...]"
data-editable="{ 'mode': 'popup', 'template': kendo.template($('#sampleTemplate').html()) }"
data-bind="source: people, events: { edit: onEdit }">
</div>
<script id="sampleTemplate" type="text/x-kendo-template">
<form id="sampleForm">
<div data-container-for="somedropdown" class="k-edit-field">
<input name="somedropdown"/>
</div>
</form>
</script>
希望这对您有用。谢谢您的回答。是的,我已经用这种方式工作了,但是因为有很多问题,编辑方法充满了冗余代码。我只是想知道为什么除了函数之外,其他所有东西都可以在同一范围内访问。