2012-01-05 17 views
1

アクティビティグリッドリボンにボタンを追加して、すべてのアクティビティを表示するモーダルウィンドウを開こうとしていますlatlngのデータ。Dynamics CRM 2011のPOSTを使用してリボンボタンからモーダルウィンドウに変数を渡す

少数のアクティビティに対してこれは問題なく動作しますが、選択した数値が大きくなりすぎると、CRMはモーダルウィンドウを開く際に問題があります。

私の現在の理論は、これは、パラメータ文字列が長すぎてGETメソッドを経由できないためです。

GETではなくPOSTを使用して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

代わりにHTMLのリソースを使用して、あなたはリボンからパラメータなしでJavaScript関数を呼び出すことができますことができます。 - かあなたはJavaScriptでshowModalDialogを使用することができます

document.getElementById("crmGrid").control.get_selectedIds(); 

今、あなたは全体のダイアログを構築するためにはJavaScript/jQueryのか、別のフレームワークを使用したい場合は、あなたが選択することができます:あなたが選択したIDを取得するには、このようなものを使用することができますjavascriptのこのインサイドcrmが使用するのと同じダイアログを表示します。いずれの場合でも、パラメータがどのように送信されているかを少しずつ制御することができます。

また、デフォルトでモーダルダイアログに送られるdialogArgumentsから親ウィンドウを取得することで、上記のコードをHTML webresources javascript内で使用することができます。

window.dialogArguments.window.document.getElementById("crmGrid").control.get_selectedIds(); 
+0

parent.document方法は、残念ながら、仕事には表示されませんが、私はその後window.dialogArgumentsを経由して、それが利用できるようにされ、JavaScriptのWebリソースを使用して、を使用してデータを渡すことができました。 – jim0thy

+0

実際には、crmはデフォルトで現在のウィンドウをパラメータとして送信するように見えます。 htmlのWebリソースで直接window.dialogArguments.windowを使用すると、javascriptリソースまたはを使用せずに選択したアイテムを取得できます。私は新しいソリューションで私の元の答えを更新しました。 – Svendberg

関連する問題