Было замечено, что иногда веб часть, при клике на
названии, не отображает элемент в диалогом окне. Это может быть вызвано если в
списке отключена такая возможность или на изначально такая возможность была отключена,
добавил веб часть на страницу, а потом включили в списке открытие в диалоговом окне, а в веб части все
равно открывается новой странице.
В списке, созданном по шаблону «Задачи» можно в коде поменять
значение тега <a>
как описано в моей другой статье.
Но в списке, созданном по шаблону «Настраиваемый список» в коде такого тега
нет. Я обратился к статье SharePoint и
XSLT: преобразуем колонку в строку.
На самом деле тег <a> есть, но он наследуется от шаблона, и нам нужно его
поменять.
Для этого я добавил форматирование столбца (как предложно в
статье) и добавил свой алгоритм формирования ссылки на форму элемента.
В итоге у меня получился вот такой код:
<xsl>
<xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" version="1.0" exclude-result-prefixes="xsl msxsl ddwrt" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:ddwrt2="urn:frontpage:internal" xmlns:o="urn:schemas-microsoft-com:office:office">
<xsl:include href="/_layouts/xsl/main.xsl"/>
<xsl:include href="/_layouts/xsl/internal.xsl"/>
<xsl:param name="AllRows" select="/dsQueryResponse/Rows/Row[$EntityName = '' or (position() >= $FirstRow and position() <= $LastRow)]"/>
<xsl:param name="dvt_apos">'</xsl:param>
<xsl:template name="LinkTitleValue.LinkTitle" ddwrt:dvt_mode="body" ddwrt:ghost="" xmlns:ddwrt2="urn:frontpage:internal">
<xsl:param name="thisNode" select="."/>
<xsl:param name="ShowAccessibleIcon" select="0"/>
<xsl:variable name="titlevalue" select="$thisNode/@Title"/>
<xsl:variable name="link">
<xsl:value-of select="$FORM_DISPLAY" />
<xsl:text>&ID=</xsl:text>
<xsl:text>&ContentTypeID=</xsl:text>
<xsl:value-of select="$thisNode/@ContentTypeId"/>
</xsl:variable>
<a onclick="ShowPopupDialog(GetGotoLinkUrl(this));return false;">
<xsl:attribute name="href">
<xsl:value-of select="$link"/>
</xsl:attribute>
<xsl:value-of select="$thisNode/@Title"/>
</a>
</xsl:template>
</xsl:stylesheet>
</xsl>
<xsl>
<xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" version="1.0" exclude-result-prefixes="xsl msxsl ddwrt" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:ddwrt2="urn:frontpage:internal" xmlns:o="urn:schemas-microsoft-com:office:office">
<xsl:include href="/_layouts/xsl/main.xsl"/>
<xsl:include href="/_layouts/xsl/internal.xsl"/>
<xsl:param name="AllRows" select="/dsQueryResponse/Rows/Row[$EntityName = '' or (position() >= $FirstRow and position() <= $LastRow)]"/>
<xsl:param name="dvt_apos">'</xsl:param>
<xsl:template name="LinkTitleValue.LinkTitle" ddwrt:dvt_mode="body" ddwrt:ghost="" xmlns:ddwrt2="urn:frontpage:internal">
<xsl:param name="thisNode" select="."/>
<xsl:param name="ShowAccessibleIcon" select="0"/>
<xsl:variable name="titlevalue" select="$thisNode/@Title"/>
<xsl:variable name="link">
<xsl:value-of select="$FORM_DISPLAY" />
<xsl:text>&ID=</xsl:text>
<xsl:text>&ContentTypeID=</xsl:text>
<xsl:value-of select="$thisNode/@ContentTypeId"/>
</xsl:variable>
<a onclick="ShowPopupDialog(GetGotoLinkUrl(this));return false;">
<xsl:attribute name="href">
<xsl:value-of select="$link"/>
</xsl:attribute>
<xsl:value-of select="$thisNode/@Title"/>
</a>
</xsl:template>
</xsl:stylesheet>
</xsl>
Надеюсь данная
информация Вам будет полезна.
Комментариев нет:
Отправить комментарий