淘汰数据绑定问题
本文关键字:问题 数据绑定 淘汰 | 更新日期: 2023-09-27 18:23:56
我有一个带有数据绑定的dropdownlist;
<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
现在它似乎起了作用:你可以在这里测试
"car"在下拉列表中的值为0
(查看您的Value
属性)。这就是0
导致选择"car"的原因。如果要选择"--请选择--",则需要将该值设置为空字符串""
。
这反过来意味着您的javascript moveType
以及C#MoveType
必须是字符串而不是数字,因为"不是有效的数字。
为了防止这种情况发生,我建议您对选项进行不同的编号:使用Value="1"
表示汽车,使用Value="2"
表示空气。然后您的"请选择"选项得到Value="0"
。