Я могу ошибаться в том, что на самом деле происходит здесь, но у меня есть 3 Html.dropdownlists.И я использую jquery для обработки фильтрации, которая действительно работает.Тем не менее, есть некоторое странное поведение, которое, я думаю, может быть из-за того, что данные не заканчивают загрузку до вызова следующей функции.
Например:
Некоторый фон.Компания: Владеет несколькими полевыми офисами Полевой офис: Владеет несколькими объектами Итак, логично, когда вы меняете компанию, полевые офисы должны меняться, что затем меняет возможности.
$(function () {
$(document).ready(function () {
var cid = $("#CompanyId").val();
$.post("/ManifestSearch/GetFilteredFieldOffices", { id: cid }, function (data) {
$("#FieldOfficeId").loadSelect(data);
});
var fid = $("#FieldOfficeId").val();
$.post("/ManifestSearch/GetFilteredFacilities", { id: fid }, function (data) {
$("#FacilityId").loadSelect(data);
});
});
});
Теперь, когда страница загружается, все выглядит хорошо.Все выпадающие списки имеют правильные данные.
Когда я меняю компанию, это вызывает.
$(function () {
$('#CompanyId').change(function () {
var cid = $(this).val();
$.post("/ManifestSearch/GetFilteredFieldOffices", { id: cid }, function (data) {
$("#FieldOfficeId").loadSelect(data);
});
var fid = $("#FieldOfficeId").val();
$.post("/ManifestSearch/GetFilteredFacilities", { id: fid }, function (data) {
$("#FacilityId").loadSelect(data);
});
});
});
Это меняет полевые офисы на правильный список, однако услуги меняются в зависимости от того, какие офисы на местах были установленыдо того, как произошла смена компании.Я не знаю достаточно о jquery, чтобы точно понять, что происходит, но мой инстинкт подсказывает мне, что эти два сообщения происходят одновременно, и второе сообщение происходит до того, как закончится первое.