在表单的上下文中按下功能区按钮时,会调用自定义的JS函数。在我的自定义JS函数中,我需要知道在按下功能区按钮之前哪个表单字段具有焦点。我试过两种方式(下面)没有成功。有没有办法可靠地做到这一点?
方式#1根据this,我可以将我想要的控件作为参数传递给我的JS。我尝试过同时使用PrimaryControlId
和PrimaryControl
个参数。
<JavaScriptFunction FunctionName="OnCustomBtnFunc"
Library="$webresource:myJSfile.js">
<CrmParameter Value="PrimaryControlId" />
<CrmParameter Value="PrimaryControl" />
</JavaScriptFunction>
对于两者,我得到一个传递给OnCustomBtnFunc()的对象,但它似乎无法让我在按下功能区按钮之前确定哪个表单控件具有焦点。
方式#2我致电Xrm.Page.ui.getCurrentControl()。这适用于某些类型的表单字段,但不适用于其他类型如果它是一个字符串字段,它可以工作,但我的查找为空。
答案 0 :(得分:0)
您不会喜欢这个答案,但您可以使用JQuery快速获取表单中的每个Control并为其分配一个OnBlur事件。此事件可以将ID或控件本身分配给全局变量,您可以使用它来访问功能区(从不同的范围触发)。
人们不喜欢这种方法,因为变量的上下文范围不同,并且因为它涉及使用普通HTML的“不支持”功能。但是,如果你只问“如何”而不是“我们应该”这个问题,那么这就是你如何做到这一点的简单方法。