У меня есть ситуация, когда у меня есть два раскрывающихся списка Kendo с несколькими вариантами выбора, и при выборе первого раскрывающегося списка с несколькими вариантами выбора я хочу заполнить еще один раскрывающийся список с несколькими вариантами выбора.
Первый MultiSelect Kendo DD:
@(Html.Kendo().MultiSelect()
.Name("FirstDropDown").Placeholder("-- Select --")
.BindTo(new SelectList(Model.BusinessData, "Id", "Name"))
.Enable(true)
.AutoBind(false).Events(e => e.Change("onFirstDropDownChange"))
.HtmlAttributes(new { style = "width: 300px" })
)
2-й MultiSelect Kendo DD:
@(Html.Kendo().MultiSelect()
.Name("project")
.Placeholder("-- Select --")
.DataTextField("ProjectName")
.DataValueField("Id")
.Filter(FilterType.Contains)
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetProjectByBu", "Reports").Data("filterProjects");
})
.ServerFiltering(true);
})
.Enable(true)
.AutoBind(false).Events(e => e.Change("onProjectChange"))
.HtmlAttributes(new { style = "width: 300px" })
)
Код JS:
function filterProjects() {
return {
buID: $("#FirstDropDown").data("kendoMultiSelect").input.val()
};
}
Что я пробовал:
Я пытался выполнить вызов AJAX в функции onFirstDropDownChange
, но это не сработало, поскольку DataSource не привязан ко второму раскрывающемуся списку.
Ограничения:
- Сначала я не хочу загружать данные в оба раскрывающихся списка.
- Значения 2-го раскрывающегося списка зависят от 1-го раскрывающегося списка, это означает, что все значения, выбранные в 1-м раскрывающемся списке, будут отправлены в базу данных через контроллер MVC и будут извлекать данные оттуда.
Что я хочу делать:
Когда я выберу любое значение в первом раскрывающемся списке с множественным выбором, мой второй раскрывающийся список с множественным выбором будет заполнен в соответствии со значениями, выбранными в первом раскрывающемся списке.
onFirstDropDownChange
&onSecondDropDownChange
? - person Tetsuya Yamamoto   schedule 15.06.2017autoBind
установлено значение false, раскрывающийся список должен ждать, пока не будет щелкнуть раскрывающийся список или пока не будет запущеноread()
вручную для источника данных. Возможно, вам придется отключить второй множественный выбор до тех пор, пока выбор не будет сделан в первом, тогда в вашей функцииchange
onFirstDropDownChange
вы можете включить второй множественный выбор и вызвать _ 5_. (secondMultiselect.dataSource.read();
) - person Sandman   schedule 15.06.2017dataSource
клиентской функцией, например.var projectDataSource = new kendo.data.DataSource({ type: "odata", serverFiltering: true, transport: { read: { url: "@Url.Action(...)", }, }});
Поскольку автоматическая привязка отключена, источники данных для обоих DDL следует связывать и читать вручную во времяclick
илиchange
событий. - person Tetsuya Yamamoto   schedule 15.06.2017