обновление значений раскрывающегося списка Kendo с помощью jQuery приводит к появлению неопределенных элементов и пустых строковых значений - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть три раскрывающихся списка кендо в моем представлении MVC.Их значения установлены в определенные Enums.Раскрывающиеся списки правильно отображают значения, и я могу изменить / обновить, если выберу каждое из них по отдельности.Тем не менее, у меня есть кнопка, которая используется для обновления всех значений 3 раскрывающихся списков до «All», вызывая setToAll, которая вызывает функцию jQuery, которая устанавливает значение для каждого раскрывающегося списка по имени (id)

Это мои перечисления:

public enum FilterEmailSignOffStatus
        {
            All = -1,
            NotSent = 0,
            Sent = 1

        }

        public enum FilterPdfSignOffStatus
        {
            All = -1,
            NotYetPrinted = 0,
            Printed = 1
        }

        public enum FilterCorrectionStatus
        {
            All = -1,
            NotCorrected = 0,
            Corrected = 1,
            Reprinted = 2
        }

Вот мой вид:

 <div class="col-md-3 ">
                            @(Html.Kendo().DropDownList()
                            .Name("printStatus")
                            .DataValueField("Text")                            
.BindTo(Enum.GetNames(typeof(SignOffSheetController.FilterPdfSignOffStatus)).ToList())

                            )
                        </div>

                        <div class="col-md-3 ">

                            @(Html.Kendo().DropDownList()
                            .Name("correctionStatus")
                            .DataValueField("Text")
.BindTo(Enum.GetNames(typeof(SignOffSheetController.FilterCorrectionStatus)).ToList())
                            )
                        </div>

                        <div class="col-md-3 ">

                            @(Html.Kendo().DropDownList()
                            .Name("emailStatus")
                            .DataValueField("Text")
.BindTo(Enum.GetNames(typeof(SignOffSheetController.FilterEmailSignOffStatus)).ToList())
                            )
                        </div>

                        <div class="col-md-3 ">
                            <button id="setAllStatus" class="btn btn-default">Set to All</button>
                        </div>

Вот моя функция jQuery:

$("#setAllStatus").click(function (e) {
        e.preventDefault();

        $("#printStatus").data("kendoDropDownList").value("All");
        $("#correctionStatus").kendoDropDownList().data("kendoDropDownList").value("All");
        $("#emailStatus").kendoDropDownList().data("kendoDropDownList").value("All");


    });

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

1 Ответ

0 голосов
/ 13 февраля 2019

удалось исправить и заставить работать кнопку.Я удалил свойства .DataValueField ("Text") для каждого из раскрывающихся списков, все они теперь корректно обновляются.

Странно, но это использовалось в предыдущей версии Kendo.После обновления до более новой версии (2018.2.516) возникла эта проблема.Я думаю, что DropDownLists обновляются с «Все», но затем пытаются получить .DataValueField и потерпеть неудачу, становясь, таким образом, неопределенным ""

@(Html.Kendo().DropDownList()
  .Name("printStatus")
//.DataValueField("Text")   --- **Removed this parameter**

  .BindTo(Enum.GetNames(typeof(SignOffSheetController.FilterPdfSignOffStatus)).ToList())

                            )
...