我正在尝试向“活动”网格功能区添加一个按钮,以打开一个模式窗口,该窗口显示地图上 latlng 数据的所有活动。
我对少数活动有效,但是一旦选定的数字变得太大,CRM就会在打开模态窗口时遇到问题。
我目前的理论是,这是因为参数字符串太长而无法通过GET方法传递。
有没有办法使用POST而不是GET将SelectedControlSelectedItemIds传递给Web资源?我在TN文档*中看不到任何内容,但我希望有人可能找到了办法。
* http://technet.microsoft.com/en-us/library/gg309332.aspx
这是我目前的代码片段:
<CommandDefinition Id="Mscrm.Isv.activitypointer.HomepageGrid.Group0.Control0">
<EnableRules>
<EnableRule Id="Mscrm.Enabled" />
</EnableRules>
<DisplayRules />
<Actions>
<Url Address="$webresource:as_cam_mapsa" WinMode="1" PassParams="true" WinParams="dialogHeight: 800px; dialogWidth: 1000px">
<CrmParameter Name="data" Value="SelectedControlSelectedItemIds" />
</Url>
</Actions>
</CommandDefinition>
答案 0 :(得分:0)
您可以使用功能区中没有参数调用javascript函数,而不是使用html webresource。在这个javascript中你可以使用这样的东西来获取所选的id:
document.getElementById("crmGrid").control.get_selectedIds();
现在您可以选择是否要使用javascript / jQuery或其他框架来构建整个对话框 - 或者您可以在javascript中使用showModalDialog来获取与crm使用的对话框相同的对话框。在任何一个术语中,您现在都可以更好地控制参数的发送方式。
您还应该能够在html webresources javascript中使用上面的代码,方法是从dialogArguments中获取默认发送到模式对话框的父窗口。
window.dialogArguments.window.document.getElementById("crmGrid").control.get_selectedIds();