在选定的剑道网格 mvvm 中获取剑道下拉列表值/文本/索引
Posted
技术标签:
【中文标题】在选定的剑道网格 mvvm 中获取剑道下拉列表值/文本/索引【英文标题】:Get kendo dropdownlist value/text/index in selected kendo grid mvvm 【发布时间】:2014-07-09 13:48:00 【问题描述】:我可以通过以下模板场景将剑道下拉列表添加到剑道网格中:
<script type="text/x-kendo-template" id="ddlGrid">
<input data-role="dropdownlist"
data-text-field="Text"
data-value-field="Value"
data-bind="source: actionSource, events: change: onChange"/>
</script>
<div class="demo-section">
<div class="k-content" style="width: 100%">
<div id="grid"
data-role="grid"
data-sortable="true"
data-selectable="true"
data-columns="[
field: 'ProductID' ,
field: 'ProductName' ,
field: 'UnitPrice' ,
field: 'UnitsInStock' ,
field: 'Discontinued' ,
title: 'Action', template: kendo.template($('#ddlGrid').html()) ]"
data-bind="source: dataSource, event">
</div>
</div>
但是,问题在于如何访问该下拉列表以获取它的值/文本/索引。 到目前为止,我可以使用这种方法获取选定的行数据:
var onClick = function (event, delegate)
event.preventDefault();
var grid = $("#grid").data("kendoGrid");
var selectedRow = grid.select();
var dataItem = grid.dataItem(selectedRow);
if (selectedRow.length > 0)
delegate(dataItem);
else
alert("Please select a row.");
;
var viewModel = new kendo.data.ObservableObject(
dataSource: productDatasource,
actionSource: actionDataSource,
onChange: function (event)
onClick(event, function (dataItem)
alert(dataItem.ProductID + " " + dataItem.ProductName);
);
,
);
这里是JSFiddle code
请帮帮我,我卡住了。
提前致谢。
【问题讨论】:
【参考方案1】:您可以使用以下方式访问 DropDownList 文本和值:
var value = event.sender.value();
var text = event.sender.text();
在您的 onChange
函数中:
onChange: function (event)
alert ("Text/Value : " + event.sender.text() + "/" + event.sender.value());
onClick(event, function (dataItem)
alert(dataItem.ProductID + " " + dataItem.ProductName);
);
,
但是我实际上不确定您为什么要定义 onClick
以及所有可以让 dataItem 简单地执行的复杂代码:
var viewModel = new kendo.data.ObservableObject(
dataSource: productDatasource,
actionSource: actionDataSource,
onChange: function (event)
alert ("Text/Value : " + event.sender.text() + "/" + event.sender.value());
var grid = $("#grid").data("kendoGrid");
var dataItem = grid.dataItem($(event.sender.wrapper).closest("tr"));
alert(dataItem.ProductID + " " + dataItem.ProductName);
,
);
kendo.bind($("#grid"), viewModel);
在这里查看:http://jsfiddle.net/OnaBai/hLG98/12/
【讨论】:
grid.dataItem($(event.sender.wrapper).closest("tr"));我花了很多时间才到达这里。想要在组合框的 SELECT 事件上获取选择获取网格行(作为模板单元格存在)。感谢您的帖子以上是关于在选定的剑道网格 mvvm 中获取剑道下拉列表值/文本/索引的主要内容,如果未能解决你的问题,请参考以下文章