如何使实体更新自己的字段

时间:2012-10-29 22:55:34

标签: c# dynamics-crm-2011

如果用户更改field_1,我想更改field_2的值。通常情况下,在客户端使用JS 执行此操作时,用户可能会再次改变主意,返回原始值。所以,我想更新插件中的字段。

我在field_2中成功发现了更改但是当我为field_1分配值时,它不会存储在数据库中。我做错了什么?

if (IsField_2Changed())
   (Context.InputParameters["Target"] as Entity).Attributes["field_1"] = 666;

我没有崩溃,没有投诉 666的值(因为它是万圣节)不会存储到数据库中。代码在更新消息上执行。

请注意,用户不会更改field_1。它将在稍后被设置为只读字段。

2 个答案:

答案 0 :(得分:1)

这是一个猜测,因为你没有提到你的插件是如何注册的。

但是我猜这个插件在Post上注册时应该在Pre上。

如果您想使用目标进行更新,则需要在Pre。

中进行更新

如果您的插件必须在Post上,请使用网络服务更新电话。

答案 1 :(得分:0)

您可以在JavaScript中执行此操作。只需将您的函数添加到field2的OnChange事件即可。它不是OnBlur事件,因此只有在用户离开后才会触发。

如果您需要在用户每次离开该字段时触发,您还可以通过JavaScript绑定OnBlur事件(而不是更改事件中的字段),但它不受支持。

对于插件,这里是一个很好的演练(虽然逻辑不完全相同) http://nzcrmguy.blogspot.com/2011/03/updating-fields-on-crm-2011-plugin.html