0
这很简单,我有一个Multiselect,当选择一个项目时,我希望标签代表DataTextField。当选择多个项目时,我想要一个标签来表示所选项目的数量。这里是我的代码:Kendo Multiselect data.length在模板中未定义
@(Html.Kendo().MultiSelect()
.Placeholder("Select Employees...")
.Name("empSelect")
.DataTextField("Employee")
.DataValueField("PERSONNEL_KEY")
.HtmlAttributes(new { style = "width:100%;font-size:10px;", id = "empSelect" })
.AutoBind(false)
.AutoClose(false)
.Filter(FilterType.Contains)
.TagTemplateId("tagTemplate")
.DataSource(source => {
source.Read(read =>
{
read.Action("GetEmployees", "EmployeeTS");
})
.ServerFiltering(true);}))
这里是tagTemplate脚本:
<script id="tagTemplate" type="text/x-kendo-template">
# if (data.length < 2) { #
<span>
#= data.Employee #
</span>
# } else { #
<span>
#= data.length # selected
</span>
# } #
所有项目来自我的控制器回来就好了。当我选择一个或多个项目时,标签显示“UNDEFINED selected”。显然“data.length”是未定义的,但我知道没有其他方法来获取所选项目的数量。
我目前在Telerik Kendo MVC的2016.3.1118版本中。
感谢您的响应。那么我如何获取所选项目的数量呢? – user2777664
如果你不想在第一次选择后显示项目文本,你可以添加“.TagMode(TagMode.Single)”并移除“.TagTemplateId(”tagTemplate“)” –
我知道,但TagMode Single show的“1选择1项目时选择的项目“。我希望它在显示DataTextField(在这种情况下为Employee)时选择1个项目。当选择多个项目时,我希望它显示“{X}个项目被选中” – user2777664