javascript - 如何使用 knockout.js 在 asp.net mvc 中设置选定的选项?
问题描述
我正在尝试根据从模型收到的值设置默认选择的选项。我正在使用 asp.net mvc 和 knockout js 进行数据绑定。
//Model.TestValue="DEF"
脚本部分。
<script>
var model = {
MyData: ko.mapping.fromJS(@Html.Raw(Json.Serialize(Model)))
};
ko.applyBindings(model);
</script>
查看部分:剃刀
@{
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]'));
});
推荐阅读
- python-3.x - 张量的内积
- c# - 如何检测 C# 中的特定单词
- javascript - 在 Live Server 中打开和在默认浏览器中打开有什么区别
- c# - 使用正则表达式在 \"test"\ 中仅编码单词测试?
- javascript - 如何组合元素数组中的键并将其分配给对象?
- swift - 如何将两个独立的 ARWorldMap 合并为更大的一个?
- assembly - 是否可以看到prinf汇编代码?
- postgresql - TypeORM 更新多对多列不起作用
- javascript - 删除确认模式未获取数据-href
- typescript - TypeScript 的自定义库目录