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