У меня есть два списка dropDownLists, которые используются для заполнения данных в модели представления частичного представления. Один из dropDownLists каскадирует от другого. Когда я изменяю выбор родителя, дочерний источник данных не получает обновленное значение.Выбор опции в родительском DropDownList не отправляет обновленное значение дочернему элементу dropDownList
Это частичный вид (который может быть на странице несколько раз):
@model ViewModel
@(Html.Kendo().DropDownListFor(m => m.Parent.Id)
.Name("Parent_" + Model.Id)
.OptionLabel("Select parent...")
.DataTextField("Text")
.DataValueField("Id")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetParentOptions", "Controller");
});
})
)
@(Html.Kendo().DropDownListFor(m => m.Child.Id)
.Name("Child_" + Model.Id)
.OptionLabel("Select child...")
.DataTextField("Text")
.DataValueField("Id")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetChildOptions", "Controller", new { parentId = Model.Parent.Id });
})
.ServerFiltering(true);
})
.Enable(false)
.AutoBind(false)
.CascadeFrom("Parent_" + Model.Id)
)
И здесь действия регулятора:
public JsonResult GetParentOptions()
{
var options = ParentService.GetOptions();
return Json(options, JsonRequestBehavior.AllowGet);
}
public JsonResult GetChildOptions(int? parentId)
{
var options = ChildService.GetOptions(parentId);
return Json(options, JsonRequestBehavior.AllowGet);
}
Это сработало, спасибо! Я использовал свойство Name, потому что я буду использовать его для использования в другом javascript-коде. Есть ли другой способ сделать это? – Kibner
@ Kibner, Кендо уже назначил имя в раскрывающемся списке. Удалите свойство Name и посмотрите на источник в своем браузере, чтобы узнать, какое имя назначено. Имя - это имя свойства в вашей модели, но в вашем случае это немного сложнее, поэтому я прошу вас проверить источник страницы. Однако, если вы хотите присвоить свое имя, для простоты, я бы рекомендовал использовать идентификатор вместо имени. проверьте мой обновленный ответ. – ataravati
Еще раз спасибо за вашу помощь! Я немного новичок в Kendo и до сих пор не полностью согласен с MVC, поэтому этот совет мне очень помогает. – Kibner