SharePoint 2010 - динамические столбцы в представлении списка - PullRequest
0 голосов
/ 02 сентября 2011

Я просто хотел проверить что-то, прежде чем уделять больше времени проблеме, с которой я столкнулся, поскольку я хочу убедиться, что я не пытаюсь сделать что-то глупое или невыполнимое.В настоящее время я работаю над проектом SharePoint, в котором я создал список в Visual Studio с различными представлениями.Требования состоят в том, чтобы одно из этих представлений содержало ряд вычислений на основе данных, касающихся текущей даты, и стоимости элементов во времени.Мне хорошо известна проблема «Сегодня», поэтому я не хочу сохранять эти фрагменты данных в списке, но мне хотелось бы динамически вычислять цифры, чтобы отображать их в виде списка.

Проблема в том, что я »Я не уверен, что это можно сделать.Очевидно, я мог бы вручную создать веб-часть, которая в коде создает сетку с использованием данных списка, но это не идеально, поскольку я хотел бы включить все функциональные возможности списка.Есть ли способ настроить страницу представления списка для добавления столбцов, скажем, в XSLT или jQuery?Можно ли это сделать в решении Visual Studio Sandbox, так как мы пытаемся не использовать SharePoint Designer, поскольку в нем отсутствует контроль исходного кода, и мы хотели бы иметь возможность автоматического развертывания фрагментов системы на сайте SharePoint?

IЯ знаю, что это много вопросов, но я один раз выдернул волосы, отсюда и мой вопрос.Заранее спасибо.

1 Ответ

1 голос
/ 02 сентября 2011

Вы можете создать тип настраиваемого поля .В SharePoint 2010 есть поддержка XSLT-рендеринга :

Пример из MSDN:

<xsl:template name="FieldRef_Text_body" ddwrt:dvt_mode="body" match ="FieldRef" mode="Text_body">
  <xsl:param name="thisNode" select="."/>
  <xsl:choose>
    <xsl:when test="@AutoHyperLink='TRUE'">
      <xsl:value-of select="$thisNode/@*[name()=current()/@Name]" disable-output-escaping ="yes"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$thisNode/@*[name()=current()/@Name]"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
...