如何根据动态值选择列表
Posted
技术标签:
【中文标题】如何根据动态值选择列表【英文标题】:How to select the list based on its dynamic value 【发布时间】:2014-02-10 13:50:09 【问题描述】:我是淘汰赛的新手。我希望当我根据值单击编辑按钮时,应选择下拉菜单。
这是我的完整代码...我正在尝试编辑记录...
这是我的 html 代码
这是我的 JS 代码...
功能项(id, name) this.id = ko.observable(id);
this.name1 = ko.observable(name);
函数 CompanyViewModel()
var self = this; var 排序 = "desc";
self.id = ko.observable("");
self.name = ko.observable().extend
( 要求:真 ); self.bloombergcode = ko.observable().extend( required: true );
self.Id = ko.observable();
self.sector1 = [new item(1, "Banking"), new item(2, "Non-Banking")];
self.country = ko.observableArray([]);
self.sectorid = ko.observable().extend( required: true );
self.isincode = ko.observable();
enter code here
self.address = ko.observable();
this.validationModel = ko.validatedObservable(
name: self.name,
bloombergcode: self.bloombergcode,
sectorid: self.sectorid
);
// self.items = ko.observableArray([]);
var company =
id: self.id,
name: self.name,
bloombergcode: self.bloombergcode,
sectorid: self.sectorid,
isincode: self.isincode,
sector1: self.sector1,
address: self.address
;
self.company = ko.observable();
self.companies = ko.observableArray();
$.ajax(
url: '@Url.Action("CompanyId", "Company")',
cache: false,
type: 'GET',
contentType: 'application/json; charset=utf-8',
data: ,
success: function (data)
//self.companies(data);
self.company(data);
self.id(data.id);
self.name(data.name);
self.sectorid = ko.observable(new item(data.sectorid, ""));
self.isincode(data.isincode);
self.address(data.address);
self.sectorid(self.sector1[1].id);
// self.sectorid(self.sector1[1]);
self.bloombergcode(data.bloombergcode)
);
var viewModel=new CompanyViewModel(); ko.applyBindings(viewModel);
【问题讨论】:
这个问题有什么进展吗?您是否尝试实施我的解决方案?如果您还有其他问题,请告诉我。 您的 HTML 代码丢失了,而且您的代码真的很难阅读,因为有些代码超出了代码区域。请为我们这些试图帮助您解决问题的人考虑。多一点努力将不胜感激。 我的 Html 代码已经完成了...只有一个功能在外面。请告诉我您期望我付出什么样的努力...? 请有人帮我... 【参考方案1】:由于您提供了optionsValue
参数,您需要将sectored
设置为id
值。换句话说:
self.sectorid(self.sector[1].id());
另外,您的绑定声明不正确。您在 optionsValue
参数上缺少 id
周围的引号。如:
<select id="sector" data-bind="options:sector1 , validationElement: sectorid, valueUpdate: 'afterkeydown', optionsValue:'id', optionsCaption: '........Select........', value: $root.sectorid, optionsText: 'name1' "></select>
希望有帮助!
附:为了澄清,不提供optionsValue
,敲除将使用实际对象作为值。在这种情况下,您最初的代码 self.sectorid(self.sector[1])
会按预期工作。
【讨论】:
感谢您的帮助...但它仍然无法正常工作...及其 self.sectorid(self.sector1[1].id); 请参阅上面已编辑答案中对绑定声明的更正。 我在回答中发现了一个问题。我错过了id
observable 的执行。看看更新的答案是否不适合你。
如果仍然无法解决问题,您可以使用 JS 代码和 HTML 的当前状态更新您的帖子吗?据我所知,它应该可以工作,但我想看看你的代码,看看我是否能发现任何错误。以上是关于如何根据动态值选择列表的主要内容,如果未能解决你的问题,请参考以下文章