0

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

我成功地发现了变化,field_2但是当我为 赋值时field_1,它不会存储在数据库中。我做错了什么?

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

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

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

4

2 回答 2

1

这有点猜测,因为您没有提及您的插件是如何注册的。

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

如果要使用 Target 进行更新,则需要在 Pre 中进行。

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

于 2012-10-30T13:08:38.457 回答
0

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

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

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

于 2012-10-30T02:59:50.630 回答