Ole*_*jko 3 c# asp.net jquery knockout.js
我有一个带有data-bind的下拉列表;
<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>
Run Code Online (Sandbox Code Playgroud)
加载页面时,默认情况下(据我所知,首先选择选项).问题是我根本无法改变这个选择.
我尝试了第二件事:
$('#cmbType option[value=' + d.Type + ']').attr("selected", "selected");
Run Code Online (Sandbox Code Playgroud)
要么
$("#cmbType").val(d.Type);
Run Code Online (Sandbox Code Playgroud)
要么
var viewModel = {
this.moveType = ko.observable(d.Type);
};
ko.applyBindings(new ViewModel());?
Run Code Online (Sandbox Code Playgroud)
d.Type = 0或1.
实际上,所有变体似乎都有效.他们将可见值改为选定的(汽车或空气)但是当我试图获得选定值时,我得到的值=""( - 请选择 - ).
当下拉列表显示选择了一个选项(汽车或空中)但真正选择的选项仍然是( - 请选择 - )时,它会是什么?
试试这个:
$('#<%=cmbType.ClientID %> option[value=' + d.Type + ']').attr("selected", "selected");
Run Code Online (Sandbox Code Playgroud)
ClientID:获取ASP.NET生成的HTML标记的控件ID.
您还可以更改ClientIDMode控件,以Static保留您在Id属性中设置的值.