В моем приложении есть компонент Kendo Multiselect, в котором я выбираю доступные параметры.
мой взгляд выглядит так:
div class="editor-field col-width45">
<div>
@(Html.Kendo().MultiSelectFor(model => model.FeaturesValues)
.DataTextField("Name")
.HtmlAttributes(new { @class = "size100Percent", Id = "FeaturesSelect" })
.DataValueField("Id")
.Placeholder("Selecione...")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetFeatures", "Role");
})
.ServerFiltering(false);
}))
</div>
</div>
Я хочу выбрать все параметры одновременно, а не выбирать один за другим.
Я искал способ сделать это, и все решения привели меня к такому результату:
- Я добавил кнопку в моем представлении.
- Я создал функцию Js, чтобы выбрать все:
мой код остался таким:
div class="editor-field col-width45">
<div>
@(Html.Kendo().MultiSelectFor(model => model.FeaturesValues)
.DataTextField("Name")
.HtmlAttributes(new { @class = "size100Percent", Id = "FeaturesSelect" })
.DataValueField("Id")
.Placeholder("Selecione...")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetFeatures", "Role");
})
.ServerFiltering(false);
}))
</div>
</br>
<div>
@(Html.Kendo().Button()
.Name("SelectAll")
.HtmlAttributes(new { type = "button" })
.Content("Selecionar todos")
.Events(ev => ev.Click("selectAll")))
</div>
JavaScript:
function selectAll() {
var multiSelect = $("#FeaturesSelect").data("kendoMultiSelect");
var selectedValues = [];
for (var i = 0; i < multiSelect.dataSource.data().length; i++) {
var item = multiSelect.dataSource.data()[i];
selectedValues.push(item.Id);
}
multiSelect.value(selectedValues);
multiSelect.trigger("change");
}
мой результат таков:
мультиселект с кнопкой добавить все
Все отлично работает !!!
Мой вопрос:
Можно ли создать флажок внутри кендо Multiselect, чтобы использовать его как select all, и не иметь этой кнопки?
Я хочу что-то вроде этого:
[множественный выбор без кнопки] [2]
введите описание изображения здесь