当页面通过来自控制器的VIEWDATA对象加载时,我有一个页面从数据库中填充其字段(下拉列表和文本框)。
我使用KnockoutJS进行数据绑定,下面是场景
HTML& JS(下拉)
@if (Filter!= null)
{
<select data-bind="options: RsnAdmAct,
value: selectedRsnAdmAct,
optionsCaption:'Choose...',
optionsValue:'RsnAdminActionID',
optionsText:'RsnAdminActionDescp',
optionsAfterRender: function()
{
setOptionRSN(@Filter.RsnForAdminAction);
}">
</select>
}
self.RsnAdmAct = ko.observableArray([]);
self.selectedRsnAdmAct = ko.observable();
$.getJSON("GetRAA", null, function (data) {
self.RsnAdmAct(data);
});
self.selectedRsnAdmAct = ko.observable();
self.setOptionRSN = function (x) {//reason for admin action dd
self.selectedRsnAdmAct(x);
};
这会使用指定的值&#34; X &#34;更新下拉列表。
但是同样没有为文本框分配值,如下所示
HTML&amp; JS(文本框)
@if (@Filter != null)
{
<input placeholder="Downstream"
data-bind="value: DownStream,
optionsAfterRender:function()
{
setOptionDstream(@Filter.DownstreamNumber);
}">
}
self.DownStream = ko.observable();
self.setOptionDstream = function (x) {//down stream number
self.DownStream(x);
};
答案 0 :(得分:0)
optionsAfterRender
适用于选项;文本输入没有选项。设置DownStream
的值将设置文本框的值,因为这是value
绑定的工作方式。
答案 1 :(得分:0)
我试图寻找一种正确的方法来做到这一点,但下面是它的工作方式,没有其他选择工作。我不得不移动函数,将值分配给texbox observable到drop的render属性之后的选项如下所示
@if (Filter!= null)
{
<select data-bind="options: RsnAdmAct,
value: selectedRsnAdmAct,
optionsCaption:'Choose...',
optionsValue:'RsnAdminActionID',
optionsText:'RsnAdminActionDescp',
optionsAfterRender: function()
{
setOptionRSN(@Filter.RsnForAdminAction);
setOptionDstream(@Filter.DownstreamNumber);
}">
</select>
}
这是它对我有用的唯一方式。感谢您的帖子和评论