Раскрывающийся список не обновляется после добавления из ajax - PullRequest
0 голосов
/ 11 июля 2019

При загрузке selectlistitem в раскрывающийся список из AJAX, он изначально отображает пустое значение вместо параметров.Я не уверен, если это ограничение IE, но он отлично работает на Firefox.

Я попытался вызвать изменение после добавления, как это

$(ddlUpdate).trigger('change', true);

и

, добавив следующее после добавления без удачи

$(ddlUpdate).trigger("chosen:updated");
$(ddlUpdate).trigger("liszt:updated");

Вот какактивируется изменение

$('#ddlDistrictName').change(function () {
        getTerritory($('#ddlSalesOffice').val(), $(this).val(), $('#ddlTerritoryName'));});

function getTerritory(branch,area , ddlUpdate) {
    $.ajax({
        url: "/instSearch/GetTerritory",
        data: { branch: branch, area: area },
        dataType: "json",
        type: "GET",
        error: function () {
            alert(" An error occurred.");
        },
        success: function (data) {
            $(ddlUpdate).empty();
            $.each(data, function (i) {
                var optionhtml = '<option value="' +
                    data[i].Value + '">' + data[i].Text + '</option>';
                $(ddlUpdate).append(optionhtml);
                $(ddlUpdate).trigger("liszt:updated");
            });
        }
    });

}

Данные представляют собой JSON, возвращаемый JsonResult

<HttpGet()>
     Public Function GetTerritory(ByVal branch As String, ByVal area As String) As JsonResult

    'サービスインスタンス
    Dim service As New InstSearchService(Me.ATOOLS)
    Dim ddl As IEnumerable(Of SelectListItem) = New List(Of SelectListItem)

    ddl = service.GetTerritory(branch, area)

    Return Json(ddl, JsonRequestBehavior.AllowGet)

End Function

При просмотре DOM отображается обновленный список.Но при щелчке по раскрывающемуся списку при первом щелчке он отображается пустым, а при втором щелчке - весь список.

enter image description here

Что мне не хватает?

1 Ответ

0 голосов
/ 24 июля 2019

Похоже, это происходит только в IE. Так что я сделал, чтобы окружить выпадающий список div, очистить div. и снова добавить выпадающий список. Таким образом, он работает нормально на IE.

 $('.ddlTerritoryHolder').empty();
 $(territoryDdl).append(blankOption).appendTo('.ddlTerritoryHolder');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...