/ / Каскадні списки KendoUI не оновлюються після обов'язкового внесення одного разу - c #, jquery, asp.net-mvc, kendo-ui, kendo-drop-down

Каскадні спадні коди KendoUI не оновлюються після обов'язкового копіювання - c #, jquery, asp.net-mvc, kendo-ui, kendo-drop-down

Я використовую каскадний випадок KendoUI і цездається, працює в порядку здебільшого, але, здається, є невелика проблема. Однак, я думаю, що це проблема з моєю реалізацією НЕ з інструментом, оскільки на сторінці Demo тут Здається, це нормально. Крім того, я намагався стежити за кодом саме так, як це було, щоб переконатися, що я отримую таку саму поведінку. Тепер я бачу наступну поведінку:

  • Я виділяю опцію у батьківському списку, а потім клацніть на випадаючому вікні дитини, після чого він називає дію conroller правильним
  • Він продовжує це робити наскільки це можливо результати випадаючого вікна для дітей є порожніми
  • Одного разу він отримує певну цінність для того, щоб зв'язати дитину зі спадним меню, він припинить здійснювати будь-які дзвінки до контролера, незважаючи на те, що я вибираю в розкривному списку батьків або випадаючому списку.

Я не знаю, чому це відбувається. Нижче наведено мій фрагмент коду:

Код контролера

[HttpGet]
public ActionResult FindAlignmentsByTeamId(int teamId)
{
var teams = Client.GetAlignmentsByTeamId(teamId);
return Json(teams, JsonRequestBehavior.AllowGet);
}

.cshtml код

@* Perent Dropbox *@

<tr>
<td>EmployeeID</td>
<td><b>@Model.EmployeeId</b></td>
</tr>
<tr>
<td>Team</td>
<td>
@(Html.Kendo().DropDownList()
.Name("Team")
.DataTextField("TeamName")
.DataValueField("TeamId")
.DataSource(source => source.Read(read => read.Action("GetAllTeams", "Employee")))
)
</td>
</tr>

@* Child DropBox *@


@(Html.Kendo().DropDownList()
.Name("Alignment")
.DataTextField("AlignmentName")
.DataValueField("AlignmentId")
.DataSource(source => source.Read(read => read.Action("FindAlignmentsByTeamId", "Employee").Data("FilterAlignment"))
.ServerFiltering(true)
)
.CascadeFrom("teamId")
.AutoBind(false)
)

<script type="text/javascript">
function FilterAlignment() {
return {
teamId: $("#Team").val()
}
};
</script>

Я не впевнений, що відбувається після того, як це пов'язаноуспішно з цінністю в перший раз, так що він має підстави вважати, що зараз більше не потрібно перевіряти будь-які події OnChange ()? Будь-які ідеї?

Відповіді:

1 для відповіді № 1

The id вашого батька DropDownList це "команда", а не "teamId". Вам потрібно оновити вашу дитину DropDownList до каскаду від правильного id:

@(Html.Kendo().DropDownList()
.Name("Alignment")
.DataTextField("AlignmentName")
.DataValueField("AlignmentId"
.DataSource(source => source.Read(read => read.Action("FindAlignmentsByTeamId", "Employee").Data("FilterAlignment"))
.ServerFiltering(true)
)
.CascadeFrom("Team")
.AutoBind(false)
)