[英]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.