Передача переменных из кнопки ленты в модальное окно через POST в Dynamics CRM 2011 - PullRequest
1 голос
/ 05 января 2012

Я пытаюсь добавить кнопку на ленту сетки «Деятельности», чтобы открыть модальное окно, в котором отображаются все действия с данными latlng на карте.

У меня все работает нормальнодля небольшого количества действий, но как только выбранное число становится слишком большим, в CRM возникают проблемы с открытием модального окна.

Моя текущая теория заключается в том, что это потому, что строка параметра слишком длинная для передачи через метод GET.

Есть ли способ передать SelectedControlSelectedItemIds в веб-ресурс, используя POST, а неПОЛУЧИТЬ?Я не вижу ничего в документах 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>

1 Ответ

0 голосов
/ 06 января 2012

Вместо использования веб-ресурса html, вы можете вызвать функцию javascript без параметров с ленты. Внутри этого javascript вы можете использовать что-то вроде этого, чтобы получить выбранные идентификаторы:

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

Теперь вы можете выбрать, хотите ли вы использовать javascript / jQuery или другую инфраструктуру для построения всего диалога - или вы можете использовать showModalDialog в javascript, чтобы получить тот же диалог, что и в crm. В любом случае, теперь у вас есть немного больше контроля над тем, как параметры sendt.

Вы также должны иметь возможность использовать приведенный выше код в своем HTML-ресурсе javascript, получив родительское окно из dialogArguments, которое по умолчанию отправляется в модальное диалоговое окно.

 window.dialogArguments.window.document.getElementById("crmGrid").control.get_selectedIds();  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...