簡體   English   中英

如何使用 knockout.js 在 asp.net mvc 中設置選定的選項?

[英]how to set selected option in asp.net mvc using knockout.js?

我正在嘗試根據從 Model 收到的值設置默認選擇的選項。 我正在使用 asp.net mvc 和淘汰賽 js 進行數據綁定。

//Model.TestValue="DEF"

腳本部分。

<script>
var model = {
            MyData: ko.mapping.fromJS(@Html.Raw(Json.Serialize(Model)))
        };

ko.applyBindings(model);  
</script>

查看剖面圖:Razor

@{
   var mydropdownlist = new SelectList(
        new List<SelectListItem>
        {
new SelectListItem {Text = "ABC", Value = "1"},
new SelectListItem {Text = "DEF", Value = "3"},
new SelectListItem {Text = "GHI", Value = "5"}
        }, "Value", "Text");

}

查看 HTML 部分。

<select data-bind="options: mydropdownlist, optionsText:'text', value:MyData.testValue "></select>

現在mydropdownlist很好,但我無法設置默認選擇的“DEF”。

使用來自 mydropdownlist 的所需選項引用設置可觀察屬性 MyData.testValue。

MyData.testValue(mydropdownlist.Items()[1]); //定義

例子:

$(函數(){

    var VmClass = function() {
        self.MyOptions = ko.observableArray([
            { Name: 'Jhon', Age: 45 }, { Name: "Peter", Age: 67 }, { Name: 'Oliver', Age: 90}
        ]);

        self.SelectedOption = ko.observable();

        // can select after binding initialized as well.
        self.ClickMeToSelect = function() {
            self.SelectedOption(self.MyOptions()[2]);
        };
        self.ClickMeToSelect();
    };

    var vmInstance = new VmClass();
    ko.applyBindings(vmInstance, document.getElementById('[element-id]')); 
});

這是你想要達到的目標嗎?

 var data = [ {"text": "ABC","value": 1}, {"text": "DEF","value": 2}, {"text": "GHI","value": 3}, {"text": "JKL","value": 4}, ]; var model = { mydropdownlist: ko.observableArray(data), selectedOption: ko.observable(data[1]) }; ko.applyBindings(model);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script> <select data-bind="options: mydropdownlist, optionsText:'text', value:selectedOption "></select> <pre data-bind="text: ko.toJSON($root.selectedOption)"> </pre>

暫無
暫無

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

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