【问题标题】:How to Pre populate drop down如何预填充下拉列表
【发布时间】:2015-07-31 11:59:05
【问题描述】:

我有一个从 GetJSON 调用填充的下拉列表,如下所示

查看

@{
   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>

当我直接访问此页面并将数据发送到 NoticeFilter 时,我希望下拉列表中的值与 Noticefilter 中的值一起预先选择。我如何实现这一目标

我想知道在从 KO JS 进行数据绑定后,剃刀 HTML 中是否有方法可以将默认值设置为 Drop-Down

【问题讨论】:

    标签: javascript html asp.net-mvc knockout.js


    【解决方案1】:

    你试过了吗?

    <script>
    var str = @Html.Raw(Json.Encode(ViewData["Text"]));
    </script>
    

    【讨论】:

    • 我无法使用它,因为我正在使用 Knockout JS 将数据绑定到下拉列表,因此出现了问题。
    • 只需将数据绑定添加到该剃刀语句的对象 htmlattribute 部分。 “@data_bind”是“数据绑定”
    • 但这会起作用吗,因为我没有为视图初始化模型并且Noticefilter大部分时间都是空的。
    • 好吧,忽略我当前的答案,但是如何用 ajax 将列表调用到 js 中,然后用 jquery 附加选项?
    【解决方案2】:

    工作中 经过几次尝试,我发现这是在我的 JS 中访问 ViewData 或 ViewBag 的一种方式

    我使用了 KO JS optionsAfterRender 如下

    查看

    <select  data-bind="options: SubType, value: selectedSubType, optionsValue:'SubTypeID', optionsText:'SubTypeDescription',optionsAfterRender:function(){setOptionST(@Noticefilter .SubTypeID);}"></select>
    

    JS

    在视图模型中

     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);
        };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多