У меня есть DropDownList, его данные динамически загружаются из-за Project DropDownList. В событии DataBound я хочу изменить, чтобы выбрать первое значение JavaScript. Я использую функцию SetDefValuesO
. Он работает, когда данные загружаются в функцию списка операций, автоматически выбирают первый элемент. Но когда я нажимаю для сохранения встроенного редактирования Grid Row, запрос обновления не содержит измененного значения. Он работает только тогда, когда я делаю это с помощью мыши.Kendo Cascade DropDownList MVC - установленное значение
Как это решить? Благодаря!
Сетка:
columns.Bound(work => work.Operation).ClientTemplate("#=Operation.Code#").Width(100);
.Model(model =>
{
model.Id(p => p.Id);
model.Field(p => p.Operation).DefaultValue(ViewData["defaultOperation"] as TT.Web.Models.ViewModel.OperationViewModel);
model.Field(p => p.Spp).DefaultValue(ViewData["defaultSpp"] as TT.Web.Models.ViewModel.SppViewModel);
model.Field(p => p.Project).DefaultValue(ViewData["defaultProject"] as TT.Web.Models.ViewModel.ProjectViewModel);
})
шаблон Редактор:
@(Html.Kendo().DropDownList()
.Name("Operation")
.OptionLabel("Vyberte výkon...")
.CascadeFrom("Project")
.DataValueField("Id")
.Events(ev => ev.DataBound("SetDefValuesO"))
.HtmlAttributes(new { requiredvalidationmessage = "required field", required = "required" })
.DataTextField("Code")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetCascadeOperations", "Home")
.Data("filterOperations");
}).ServerFiltering(true);
})
.Enable(false)
.AutoBind(false))
function SetDefValuesO(){
var OperationCount = $("#Operation").data("kendoDropDownList").dataSource._data.length;
console.log(OperationCount);
if(OperationCount == 1){
$("#Operation").data("kendoDropDownList").value($("#Operation").data("kendoDropDownList").dataSource._data[0].Id);
console.log($("#Operation").val());
}
решаемая:
function SetDefValuesO(){
var OperationCount = $("#Operation").data("kendoDropDownList").dataSource._data.length;
if(OperationCount == 1){
// $("#Operation").data("kendoDropDownList").select(1);
$("#Operation").data("kendoDropDownList").value($("#Operation").data("kendoDropDownList").dataSource._data[0].Id);
this.trigger("change"); // solution
}
}
Привет, помог ли мой ответ решить вашу проблему? Если да, не могли бы вы пометить мой ответ в качестве ответа? Таким образом, люди, которые могут найти вопрос с помощью Google, могут получить больше уверенности в правильности ответа. Спасибо заранее. –