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