Вывод столбца гиперссылки SharePoint в виде URL - PullRequest
2 голосов
/ 02 июня 2009

Некоторые URL-адреса документов хранятся в столбце публикации Sharepoint. Когда я вывожу информацию на страницу HTML, используя:

<xsl:value-of select="@[ColumnName]" />

в ItemStyle.xml, я получаю [url], [document name] на странице. Я хотел бы отобразить это как URL, может кто-нибудь помочь с XSL?

Ответы [ 6 ]

4 голосов
/ 02 июня 2009

Вы можете использовать:

<xsl:value-of select="substring-before(@[ColumnName],',')"/>

или любой другой разделитель.

3 голосов
/ 03 июня 2009

Спасибо всем, в конце концов я понял следующее, основываясь на посте на sguk

<xsl:variable name="Doc">
  <xsl:call-template name="OuterTemplate.GetTitle">
    <xsl:with-param name="Title" select="@DocumentLink1"/>
  </xsl:call-template>
</xsl:variable>

со следующим кодом тега:

<a href="{substring-before($Doc,',')}">
  <xsl:value-of select="substring-after($Doc,',')" />
</a>

или для изображения:

<xsl:variable name="Image">
  <xsl:call-template name="OuterTemplate.GetTitle">
    <xsl:with-param name="Title" select="@img" />
  </xsl:call-template>
</xsl:variable>

со следующим тегом img:

<img src="{substring-before($Image,',')}" alt="{substring-after($Image,',')}" />

Я публикую решение здесь, так как это оказалось нелепо сложно выяснить (возможно, это моя вина, поскольку я действительно не «получаю» XSL), но на случай, если кто-то его ищет, этот код выводит изображения или ссылки из столбца «Гиперссылка или изображение» в Sharepoint.

0 голосов
/ 27 июня 2013

В SharePoint 2013 вы должны действовать немного иначе, потому что атрибут @Url больше не разделяется запятой. Теперь есть субсвойство .desc @Url. Ниже приведен пример того, как это работает, надеюсь, это сэкономит кому-то еще время.

  <xsl:template name="dvt_1.rowview">
    <xsl:if test="string-length(@URL) &gt; 0">
      <div class="link-item item">
        <a title="{@Comments}" target="_blank" href="{@URL}">
          <xsl:value-of select="@URL.desc" />
        </a>
      </div>
    </xsl:if>
  </xsl:template>
0 голосов
/ 16 июля 2009

Надеюсь, это поможет. Он показывает «Сайт проекта» при вводе гиперссылки и пробел при отсутствии.

        <!--Project Site--><TD Class="{$IDAAO2UG}">
        <xsl:variable name="Field" select="@Project_x0020_Site" />
        <xsl:choose>
            <xsl:when test="substring-before(@Project_x0020_Site, ', ')=''"><xsl:value-of select="substring-after(@Project_x0020_Site, ', ')" /></xsl:when>
            <xsl:otherwise><A HREF="{substring-before(@Project_x0020_Site, ', ')}">
                <xsl:choose>
                    <xsl:when test="substring-after(@Project_x0020_Site, ', ')=''"><xsl:value-of disable-output-escaping="no" select="substring-before(@Project_x0020_Site, ', ')" /></xsl:when>
                    <xsl:otherwise><xsl:value-of select="substring-after(@Project_x0020_Site, ', ')" /></xsl:otherwise>
                </xsl:choose>
                </A></xsl:otherwise>
        </xsl:choose>
        </TD>
0 голосов
/ 03 июня 2009

Самый простой способ сделать это с помощью дизайнера SharePoint:

  • щелкните поле с надписью "http://link, description"
  • появится окно с>, щелкните по нему, и вы получите всплывающую подсказку "common xsl: value-of tasks".
  • У него будут имя и тип поля, а для типа установлено значение "текст".
  • Измените тип на «гиперссылка», и вы получите окно, позволяющее форматировать гиперссылку. Он будет иметь все необходимые xsl уже заполнены, но вы можете ввести свой собственный текст или удалить ссылку.
0 голосов
/ 03 июня 2009

Еще одна вещь, которую вы можете сделать, это взять список, который правильно отображает URL (например, список ссылок), и использовать SharePoint Designer для преобразования его в DataView WebPart. Там будет правильный XSL для выполнения преобразования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...