jquery - 如何使用knockout.js将数据动态绑定(bind)到下拉列表?

标签 jquery asp.net-mvc-4 knockout.js jsonp single-page-application

我是 knockout.js 的新手。我无法使用knock out js 将数据从api 绑定(bind)到下拉列表。

我来自 api 和下拉列表的 Json 数据是:

[{
ContactID: 0,
FirstName: "Aaa",
LastName: "bbb",
MobileNumber: null,
StartDate: "0001-01-01T00:00:00",
EndDate: "0001-01-01T00:00:00"
},
{
ContactID: 0,
FirstName: "Ccc",
LastName: "ddd",
MobileNumber: null,
StartDate: "0001-01-01T00:00:00",
EndDate: "0001-01-01T00:00:00"
}
]
<select id="selectmenu1" name="" data-theme="c" data-bind="optionsCaption: 'Choose...'">        </select> 

我只是将名字、姓氏、contactID 绑定(bind)到下拉列表并将名字和姓氏显示为文本,而 contactID 是该项目的值字段。 有人可以就此提出一些建议吗?

最佳答案

您需要使用options binding ,您需要在其中指定:

  • 选项中的项目数组(请参阅文档示例 3)
  • 您需要设置 optionsValue: 'ContactID' 以将 ContactID 作为值
  • 您需要在 optionsText 中指定一个函数来构建您选择的文本(请参阅文档示例 4)

所以你的最终绑定(bind)将如下所示:

<select id="selectmenu1" name="" data-theme="c" 
  data-bind="options: contacts, 
             optionsValue: 'ContactID', 
             optionsText: function(i) { return i.FirstName + ' ' + i.LastName }, 
             optionsCaption: 'Choose...'">        
</select>

演示 JSFiddle.

关于jquery - 如何使用knockout.js将数据动态绑定(bind)到下拉列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18124895/

相关文章:

asp.net-mvc - 如何将客户端生成的类列表获取到 MVC 后操作参数?

javascript - jQuery CSS 不工作

javascript - 如何将 Ajax 加载器添加到幻灯片

javascript - 如何前置一个大DIV?

asp.net-mvc-4 - Magick.NET-x64 在部署时抛出 "dll not found"异常

javascript - 动态生成的元素不显示在屏幕上

asp.net-mvc - 显示 Htmlhelper 的 Razor View 不包含定义

javascript - 将值传递给具有 knockout 功能的函数

knockout.js - 如何将 Javascript 模块模式与 Knockout JS 和 Pager JS 结合使用?

jquery - 使用 Jquery 弹出图片库