Javascript 如何预填充下拉列表
我有一个下拉列表,它是通过一个GetJSON调用填充的,如下所示 查看Javascript 如何预填充下拉列表,javascript,html,asp.net-mvc,knockout.js,Javascript,Html,Asp.net Mvc,Knockout.js,我有一个下拉列表,它是通过一个GetJSON调用填充的,如下所示 查看 @{ var NoticeFilter =(X.Models.Y.Z.NoticesEntity) ViewData["NoticeFilter"]; } <div class="form-group"> <label>Field Office</label> <select data-bind="options: FieldOffice, value:
@{
var NoticeFilter =(X.Models.Y.Z.NoticesEntity) ViewData["NoticeFilter"];
}
<div class="form-group">
<label>Field Office</label>
<select data-bind="options: FieldOffice, value: selectedFieldOffice, optionsCaption:'Choose...', optionsValue:'FieldOfficeID', optionsText:'Name'">
@if(NoticeFilter!=null)
{
<option value="@NoticeFilter.FieldOfficeID" selected></option>
}
</select>
</div>
@{
var NoticeFilter=(X.Models.Y.Z.noticeEntity)ViewData[“NoticeFilter”];
}
外地办事处
@if(NoticeFilter!=null)
{
}
当我指向此页面并将数据发送到NoticeFilter时,我希望下拉列表中的值与其他值中的NoticeFilter中的值一起预先选择。我如何实现这一点
我想知道在razor HTML中是否有一种方法可以设置一个默认值,在从KO JS进行数据绑定后下拉。您尝试过这个吗
<script>
var str = @Html.Raw(Json.Encode(ViewData["Text"]));
</script>
var str=@Html.Raw(Json.Encode(ViewData[“Text”]);
工作
经过几次尝试后,我发现这是在我的JS中访问ViewData或ViewBag的一种方法
我使用了KO JS选项AfterRender,如下所示
看法
我不能使用它,因为我使用Knockout JS将数据绑定到下拉列表,因此出现了问题。只需将数据绑定添加到razor语句的object htmlattribute部分。“@data_bind”是“data bind”,但这会起作用吗?因为我没有为视图初始化模型,并且Noticefilter大部分时间为空。好的,忽略我当前的答案,但是用ajax调用列表,然后用jquery附加选项怎么样?我尝试了这个方法
<select data-bind="options: SubType, value: selectedSubType, optionsValue:'SubTypeID', optionsText:'SubTypeDescription',optionsAfterRender:function(){setOptionST(@Noticefilter .SubTypeID);}"></select>
self.setOptionST = function (x) {
//here we can do whatever is intended to in my case to set the initial value in dropdown
self.selectedSubType(x);
};