我在.net应用程序中使用Breezejs和Durandal。
当我尝试编辑包含
的部分时1)文本框
2)带有标题和选项的下拉列表
3)TextArea
4)按钮
点击编辑按钮,我将这些控件与各自的值绑定(直到它可以正常工作)。
将文本框值更改为“test123”并将其下拉值更改为“标题”并单击“保存”按钮。在保存功能中,我正在创建处于修改状态的Breeze实体并更新它们,如下所示,
var personEntity = breeze.manager.createEntity('TableName', { Id: id }, breeze.EntityState.Unchanged);
personEntity.entityAspect.entityState.setModified();
personEntity.name(name); //"test123"
personEntity.dropdownValue(status) //I have selected the caption, means value is undefined
personEntity.textArea(address); //No change
然后将savechanges()发送到DB。
在表格文本框中,值正确更新,但下拉列表的值未更新(来自某个值) 到Null);
请建议我一些解决方案,这样如果选择了标题,我可以在DB中保存空值。
先谢谢......
答案 0 :(得分:0)
问题是服务器上的ContextProvider
未检测到dropdownValue
已更改。它通过查看entityAspect.originalValues
来确定更改的属性。由于您使用dropdownValue = undefined创建了一个新实体,并将其设置为undefined,因此未检测到任何更改。
更改代码以将dropdownValue初始化为其他内容:
var personEntity = breeze.manager.createEntity('TableName',
{ Id: id, dropdownValue: 'something' });
personEntity.name(name);
personEntity.dropdownValue(status);
personEntity.textArea(address);