积极答复者
【求助】CRM4.0 某个Entity Associated View自定义Button函数调用的相关问题

问题
-
大家好, 我现在这样一个需求,需要在Account左边Navigation bar的Contact associated view中添加一个自定义Button,该button的作用是选择Grid View中的一条记录,同时对这条选定的记录在不打开Form的情况下对某个Attribute进行更新,方法如下:
在ISV.Config文件中找到这个ImportExportXml/IsvConfig/configuration/Entities/Entity name="contact"/Grid/MenuBar/Buttons节点,添加如下代码:
<Button
Icon="/_imgs/ico_18_debug.gif"
Url="/ISV/test.htm"
WinMode="2"
>
<Titles>
<Title LCID="1033" Text="Get GUIDS" />
</Titles>
<ToolTips>
<ToolTip LCID="1033" Text="Get GUIDS for selected records" />
</ToolTips>
</Button>
在ISV文件夹下创建一个test.htm文件,代码如下:
<html> <head> <title>GUIDs for records seleced in Grid</title> <script type="text/jscript"> function listselecteditems() { var placeholder = document.getElementById("test"); var sGUIDValues = ""; var selectedValues; //Make sure window.dialogArguments is available. if (window.dialogArguments) { selectedValues = new Array(window.dialogArguments.length -1); } else { placeholder.innerText = "window.dialogArguments is not available."; return } selectedValues = window.dialogArguments; if (selectedValues != null) { for (i=0; i < selectedValues.length; i++) { sGUIDValues += selectedValues[i] +"\n"; } placeholder.innerText = sGUIDValues; } else { placeholder.innerText = "No records were selected."; } } </script> </head> <body onload="listselecteditems()"> <div id="test"></div> </body> </html>
这样一切运行正常,但我现在想做的是想直接写个listselecteditems()函数,然后在ISV.config中用脚本直接调用,<Button javascript="listselecteditems();">, 不想通过test.htm来实现,由于不能在ISV.config文件中直接写函数,所以我想问下这个listselecteditems()函数我应该写在哪里,希望能够得到大家的帮助,先谢谢大家了
crm4.0学步
答案
-
全局脚本就是global.js,在目录 \\CRMWeb\_static\_common\scripts\ 下,把你的函数放到这里就可以在isv.config里面直接调用了(unsupported!!)。
但是就你这个函数而言,会有些问题:因为如果在isv.config里面用JavaScript调用,这个函数里的一些方法就不适用了。
Jim
Jim Wang - MVP Dynamics CRM - http://jianwang.blogspot.com , http://mscrm.cn- 已标记为答案 Jim Wang (Microsoft)Microsoft employee, Moderator 2009年6月13日 6:58
-
var a= document.all[ ' crmGrid ' ].InnerGrid.SelectedRecords;
var selectedItems = new Array(a.length);
for ( var i = 0 ; i < a.length; i ++ )
{
selectedItems = a[ 0 ];
}
var oId = selectedItems[ 0 ];
return oId ;
}
你試一下類似這樣行不行。如果可以告訴我一下.
韓建興 http://jamson.cnblogs.com- 已标记为答案 Jim Wang (Microsoft)Microsoft employee, Moderator 2009年6月13日 6:58
全部回复
-
全局脚本就是global.js,在目录 \\CRMWeb\_static\_common\scripts\ 下,把你的函数放到这里就可以在isv.config里面直接调用了(unsupported!!)。
但是就你这个函数而言,会有些问题:因为如果在isv.config里面用JavaScript调用,这个函数里的一些方法就不适用了。
Jim
Jim Wang - MVP Dynamics CRM - http://jianwang.blogspot.com , http://mscrm.cn- 已标记为答案 Jim Wang (Microsoft)Microsoft employee, Moderator 2009年6月13日 6:58
-
var a= document.all[ ' crmGrid ' ].InnerGrid.SelectedRecords;
var selectedItems = new Array(a.length);
for ( var i = 0 ; i < a.length; i ++ )
{
selectedItems = a[ 0 ];
}
var oId = selectedItems[ 0 ];
return oId ;
}
你試一下類似這樣行不行。如果可以告訴我一下.
韓建興 http://jamson.cnblogs.com- 已标记为答案 Jim Wang (Microsoft)Microsoft employee, Moderator 2009年6月13日 6:58