如果用户更改field_1
,我想更改field_2
的值。通常情况下,在客户端使用JS 但执行此操作时,用户可能会再次改变主意,返回原始值。所以,我想更新插件中的字段。
我在field_2
中成功发现了更改但是当我为field_1
分配值时,它不会存储在数据库中。我做错了什么?
if (IsField_2Changed())
(Context.InputParameters["Target"] as Entity).Attributes["field_1"] = 666;
我没有崩溃,没有投诉但 666的值(因为它是万圣节)不会存储到数据库中。代码在更新消息上执行。
请注意,用户不会更改field_1
。它将在稍后被设置为只读字段。
答案 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