[英]Knockout data-bind issue
我有一个带有数据绑定的下拉列表;
<asp:DropDownList ID="cmbType" Runat="server" AutoPostBack="False" data-bind="value: moveType">
<asp:ListItem Value="">-- Please Select --</asp:ListItem>
<asp:ListItem Value="0">Car</asp:ListItem>
<asp:ListItem Value="1">Air</asp:ListItem>
</asp:DropDownList>
我也有
var viewModel = {
this.moveType = ko.observable(MoveType);
};
ko.applyBindings(new ViewModel());
其中“ MoveType”为0或1。这似乎工作正常,但只有一部分。 一切都很好,并且只有在“ MoveType” = 1的情况下,才可以正确选择下拉菜单中的值。如果MoveType = 0,则它不想选择“ Car”,而是选择选项为“-Please Select-”,值“”。
问题很简单,为什么呢? 我想念什么? 我听不懂
您确定控制台没有收到任何错误吗?
我将您的代码更改为:
var MoveType=1;
var ViewModel = function() {
this.moveType = ko.observable(MoveType);
};
ko.applyBindings(new ViewModel()); // This makes Knockout get to work
现在它似乎可以工作了:您可以在这里进行测试
“汽车”在下拉列表中的值为0
(请查看您的Value
属性)。 这就是为什么0
导致选择“汽车”的原因。 如果要选择“-请选择-”,则需要将值设置为空字符串""
。
这又意味着您的javascript moveType
以及C# MoveType
必须是字符串而不是数字,因为“”不是有效数字。
为防止这种情况,我建议您对选项进行不同的编号:对于汽车,请使用Value="1"
;对于飞机,请使用Value="2"
。 然后,您的“请选择”选项将得到Value="0"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.