簡體   English   中英

使用 jQuery 更新 Kendo 下拉列表值會導致未定義的元素和空字符串值

[英]updating Kendo Dropdown list values with jQuery results in undefined elements and empty string values

我的 MVC 視圖中有三個劍道下拉列表。 它們的值被設置為定義的枚舉。 下拉列表正確顯示值,如果我單獨選擇每個值,我可以更改/更新。 但是,我有一個按鈕,用於將所有 3 個下拉列表值更新為“全部”調用“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");


    });

下拉列表應全部更新為“全部”值,但它們改為更新為""空字符串。 任何人都能夠注視並告訴我我可能會出錯的地方?

設法修復並使按鈕工作。 我刪除了每個下拉列表上的 .DataValueField("Text") 屬性,它們現在都在正確更新。

奇怪的是,這曾經在以前版本的 Kendo 中工作過。 在我們更新到較新的版本(2018.2.516)后,出現了這個問題。 我的想法是 DropDownLists 用“All”更新,然后嘗試獲取 .DataValueField 並失敗,從而成為未定義的“”

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

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

                            )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM