【问题标题】:kendo grid foreign column selected text being overrriden by client template剑道网格外栏选定的文本被客户端模板覆盖
【发布时间】:2015-11-10 12:20:22
【问题描述】:
我在 MVC 项目上有一个剑道网格,其外键列和客户端模板在同一列上,用于将数据发送到控制器(隐藏),因为我在剑道网格上方有一个标题信息,我想发送到控制器。一切正常。但是当我在网格中选择下拉菜单时,它会显示值而不是文本。
columns.ForeignKey(c => c.studentId, (System.Collections.IEnumerable)ViewData["Students"], "Id", "name").Title("id - name").Width(70)
.ClientTemplate("#= studentId #" + "") ;
以上是我目前拥有的确切代码。
如何在剑道网格上向用户显示所选文本(本例中为名称)而不是值(本例中为 ID)。
谢谢
【问题讨论】:
标签:
kendo-ui
grid
selected
【解决方案1】:
刚遇到同样的问题,在telerik site上发现了这个:
基本上创建一个函数,从网格中的外键下拉列表中查找文本。
columns.ForeignKey(c => c.G_ID, plus, "Value", "Text").Title("Plu").Lockable(true).ClientFooterTemplate("Total").ClientTemplate("#= getTextByValue(data)#" +
"<input type='hidden' name='Schedules[#= index(data)#].G_ID' value='#= G_ID #' />"); //.Hidden();
和javascript:
var collection;
以及功能:
function getTextByValue(data) {
console.log(data);
var dGrid = $("#the-dtl-grid").data("kendoGrid");
//change the index of the column with your index
valuesCollection = dGrid.options.columns[1].values;
//if the collection is empty - get it from the grid
if (!collection) {
collection = {};
//Set the correct FKColumn index
for (var value in valuesCollection) {
collection[valuesCollection[value].value] = valuesCollection[value].text;
}
}
return collection[data.G_ID];
}