Дочерний DropDownList для не показанных отфильтрованных данных после успешного каскада - PullRequest
0 голосов
/ 28 мая 2018

Привет!

У меня проблема с двумя выпадающими списками.Родитель функционирует очень просто.После правильного выбора в родительском DDL дочерний DDL включается автоматически, и я получаю перехват XHR, который возвращает правильные данные JSON, но затем дочерний DDL не может отобразить эти данные.

CSHTML:

@* Parent DDL *@
@(Html.Kendo().DropDownListFor(m=>m.AccountCode)
  .OptionLabel("Service Type...")
  .DataTextField("Name")
  .DataValueField("Code")
  .BindTo(ViewBag.AccountCodes)
  .HtmlAttributes(new { @class = "form-control", style = "width: 100%", required = "required" })
)

@* Child DDL *@
@(Html.Kendo().DropDownListFor(m => m.ServiceFinderId)
      .HtmlAttributes(new { @class = "form-control", style = "width: 100%" })
      .OptionLabel("Select service...")
      .DataTextField("Name").DataValueField("Id")
      .Filter(FilterType.Contains)
      .Height(450)
      .DataSource(source =>
      {
          source.Read(read =>
          {
              read.Action("GetAllServices", "AjaxApi").Type(HttpVerbs.Post)
                  .Data("ServiceFinderIdFilter");
          })
          .ServerFiltering(false);
      })
      .Enable(false)
      .AutoBind(false)
      .CascadeFrom(Html.IdFor(m => m.AccountCode).ToString())
)

JavaScript

function ServiceFinderIdFilter() {
  return {
    accountCode: $("#" +'@Html.IdFor(m=>m.AccountCode)').val()
  };
}

C #

public async Task<JsonResult> GetAllServices(string accountCode)
{
    var result = await serviceClient.GetServiceList(true, null, string.Empty, new[] { accountCode });

    if (result == null)
    {
        return Json("", JsonRequestBehavior.AllowGet);
    }

    return Json(result.Select(s => new { Id = s.Code, Name = $"#{s.Code:D4} {s.Name}, Fee: {s.Fee:0.##}" }).ToList(), JsonRequestBehavior.AllowGet);
}

Если я отлаживаю, я вижу, что с контроллера отправляется правильный набор результатов.В chrome ответ на вызов XHR тоже хороший JSON.Но, в конце концов, дочерний DDL не показывает данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...