Как определить скрытый столбец в Xrm grid

#dynamics-crm #xrm

#dynamics-crm #xrm

Вопрос:

Есть ли способ включить скрытый столбец в xrm grid / view?

Допустим, я сохранил определение запроса следующим образом:

 <savedquery>
  <savedqueryid>{...}</savedqueryid>
  <layoutxml>
    <grid name="resultset" jump="name" select="1" icon="1" preview="1">
      <row name="result" id="entityid">
        <cell name="name" width="200" />
        <cell name="statuscode" width="100" />   
      </row>
    </grid>
  </layoutxml>
  <querytype>0</querytype>
  <fetchxml>
    <fetch version="1.0" output-format="xml-platform" mapping="logical">
      <entity name="entity">
        <attribute name="name" />
        <attribute name="statuscode" />
      </entity>
    </fetch>
  </fetchxml>
</savedquery>
  

Мне нужно, чтобы столбец в сетке был доступен через клиентский API, поскольку он управляет логикой ленты

 var allSelectedRows = gridContext.getGrid().getSelectedRows().forEach((row) => {
  // this doesn't work if grid doesn't contain statuscode column
  let status = row.data.entity.attributes.get("statuscode");

});
  

Фактически не отображая столбец в пользовательском интерфейсе.

Ответ №1:

К сожалению, технически это невозможно. Поскольку нет свойства для установки скрытых столбцов, также не рекомендуется выполнять / читать доступ к неподдерживаемым элементам DOM.

Вы можете использовать SelectedControlSelectedItemIds для передачи в качестве параметра пользовательскому JavaScript, а затем вы можете извлечь необходимый столбец, например, statuscode , с сервера для выполнения проверки.

Комментарии:

1. learn.microsoft.com/en-us/dynamics365/customer-engagement/…

2. Это, конечно, работает, но это проблематично (отчасти), поскольку ribbon работает только синхронно, поэтому единственный способ — показать что-то по умолчанию, запросить выборку, а затем принудительно обновить-ribbon — не совсем элегантно.

3. @OndrejSvejdar вероятно, вы можете отправить эту идею в MS .. например, предоставить возможность добавлять скрытые столбцы в gridview