我在表单助手(MS CRM 4.0)上使用javascript进行一些简单的自定义时遇到了一些麻烦。我试图实现的是当我打开表单助手时,在查找中有与当前(默认)不同的选择。
例如,如下图所示,当我选择Customer时,我希望我的默认选择是"Contact",而不是Account当前和默认的帐户。

到目前为止,对于主要的查找(表单助手),我设法像这样改变了焦点:
crmForm.all.customer.SetFocus();但不知何故,我找不到另一个人的身份。我试着从html中挖掘出来,但似乎都不起作用。
我非常感谢任何帮助,文章,文档。
谢谢!
发布于 2010-11-24 02:13:51
这比我最初想象的要简单,当然这不是微软想要做的。以下是事件表单的示例,因此您可能需要针对实际使用的表单调整选择列表索引。
在表单的OnLoad代码中放入以下函数( window.部分很重要,以免在OnLoad代码结束时该函数超出范围):
window.setFormAssistantPicklist = function()
{
var plMain = document.getElementById("ContextSelect");
if ((plMain) && (1 == plMain.selectedIndex))
{
var plSub = document.getElementById("selObjects");
if (plSub)
{
plSub.selectedIndex = 1;
plSub.fireEvent("onchange");
}
else
{
setTimeout(setFormAssistantPicklist, 1000);
}
}
};这将检查是否选择了"Customer“,以及是否选择了表单助手的下部窗格”Customer“,如果是,则在第二个选择列表中选择"Contact”并触发其OnChange事件。如果找不到第二个选择列表,则下部窗格仍在加载中(我不确定是否有方法捕获该load调用的OnReadyStateChange事件,这当然会更优雅),并在一秒钟后再次检查。
现在,我们需要确保当上面选择列表中的选择发生更改时调用此代码。这也包含在您的OnLoad代码中:
var pl = document.getElementById("ContextSelect");
if (pl)
{
pl.onchange = function ()
{
RelatedInformationPane.LoadContextData(); // this is the standard OnChange code of the lookup selection picklist
setFormAssistantPicklist();
}
}这将导致加载下面的窗格,然后将运行setFormAssistantPicklist()中的检查,并可能相应地设置选择列表。
https://stackoverflow.com/questions/4256455
复制相似问题