3

有一个自定义 JS 函数,当在表单上下文中按下功能区按钮时调用该函数。在我的自定义 JS 函数中,我需要知道在按下功能区按钮之前哪个表单字段具有焦点。我尝试了两种方法(如下)但没有成功。有没有办法可靠地做到这一点?

方式#1

据此我可以得到我想要作为参数传递给我的 JS 的控件。我试过同时使用PrimaryControlIdPrimaryControl参数。

<JavaScriptFunction FunctionName="OnCustomBtnFunc" 
                    Library="$webresource:myJSfile.js">
   <CrmParameter Value="PrimaryControlId" />
   <CrmParameter Value="PrimaryControl" />
</JavaScriptFunction>

对于这两者,我得到一个传递给 OnCustomBtnFunc() 的对象,但它似乎无法让我确定在按下功能区按钮之前哪个表单控件具有焦点。

方式#2

我打电话给Xrm.Page.ui.getCurrentControl()。这适用于某些类型的表单字段,但不适用于其他类型,例如,如果它是一个字符串字段,它可以工作,但我得到 null 进行查找。

4

1 回答 1

0

您不会喜欢这个答案,但您可以使用 JQuery 快速获取表单中的每个控件并为其分配一个 OnBlur 事件。此事件可以将 ID 或控件本身分配给全局变量,您将可以访问您的功能区(从不同的范围触发)。

人们不喜欢这种方法,因为变量的上下文范围不同,并且因为它涉及使用纯 HTML 的“不支持”特性。但是,如果您只问“如何”而不是“我们应该”,那么这是“如何”执行此操作的简单方法。

于 2013-06-19T14:55:41.347 回答