Listbox для не привязки при изменении выпадающего в вызове Ajax - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь загрузить элемент управления ListboxFor, когда пользователь меняет конкретный выпадающий список. Ниже приведен код, который я пытался достичь, но он не работает. Кто-нибудь может направить меня? Заранее спасибо.

@Html.ListBoxFor(c => c.ClientDemographicHospitalId, new MultiSelectList(Model.Hospitals, "Value", "Text"), new { ng_model = "hospitalDropdownList", @class = "HospitalListbox", style = "width:65%" })
$.ajax({
    url: '/Controller/ActionMethod',
    type: "POST",
    dataType: "JSON",
    data: { clientId: clientId },
    success: function (data) {
        $("#ClientDemographicHospitalId").empty();
        $("#ClientDemographicHospitalId").append($('<option></option>').val(0).html("Select Hospital"));
        $.each(data, function (i, hospitals) {
            $("#ClientDemographicHospitalId").append($('<option></option>').val(hospitals.ClientDemographicHospitalId).html(hospitals.Name));
        });
    }
});
public ActionResult GetHospitalsByClient(int clientId)
{
    JsonResult result = new JsonResult();
    var hospitals = GetHospital(clientId);
    if (hospitals != null)
    {
        result.Data = hospitals.ToList();
        result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
    }
    return result;
}

enter image description here

1 Ответ

0 голосов
/ 08 мая 2018

Может быть, вы можете посмотреть на визуализированный HTML в вашем браузере, проверив элементы DOM? Я думаю, что проблема может быть там, в том числе потому, что вы получаете идентификатор из таблицы, которую я предполагаю, и, вероятно, вы получаете идентификатор, который равен «20932» в ListBox, и вы пытаетесь вызвать элемент с идентификатором #ClientDemographicHospitalId , который, вероятно, отличается от того, на который вы указываете, в этом случае вам следует использовать класс HospitalListbox и вызвать элемент Jquery, например:

$(".HospitalListbox").empty();
$(".HospitalListbox").empty();
$(".HospitalListbox").append($('<option></option>').val(0).html("Select Hospital"));
$.each(data, function (i, hospitals) {
    $(".HospitalListbox").append($('<option></option>').val(hospitals.ClientDemographicHospitalId).html(hospitals.Name));
});

Также внутри успешного вызова AJAX поместите console.log (data); чтобы точно узнать, какие данные вы получаете и хотите вставить в эти элементы.

...