Como personalizar item de modelo de estilo?
-
10-12-2019 - |
Pergunta
SP novato aqui.Estou tentando entender, em seguida, personalizar um built-in de item de modelo de estilo (copiado do ItemStyle.xsl
arquivo) abaixo.
1 Onde posso encontrar as funções OuterTemplate.*
?
2 Eu deveria me adicionar outro campo para apresentar e obter a entrada do usuário, como na imagem abaixo, onde posso adicioná-lo?
<xsl:template name="ImageRight" match="Row[@Style='ImageRight']" mode="itemstyle">
<xsl:variable name="SafeLinkUrl">
<xsl:call-template name="OuterTemplate.GetSafeLink">
<xsl:with-param name="UrlColumnName" select="'LinkUrl'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="SafeImageUrl">
<xsl:call-template name="OuterTemplate.GetSafeStaticUrl">
<xsl:with-param name="UrlColumnName" select="'ImageUrl'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="DisplayTitle">
<xsl:call-template name="OuterTemplate.GetTitle">
<xsl:with-param name="Title" select="@Title"/>
<xsl:with-param name="UrlColumnName" select="'LinkUrl'"/>
</xsl:call-template>
</xsl:variable>
<div class="item">
<xsl:if test="string-length($SafeImageUrl) != 0">
<div class="image-area-right">
<a href="{$SafeLinkUrl}">
<xsl:if test="$ItemsHaveStreams = 'True'">
<xsl:attribute name="onclick">
<xsl:value-of select="@OnClickForWebRendering"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="$ItemsHaveStreams != 'True' and @OpenInNewWindow = 'True'">
<xsl:attribute name="onclick">
<xsl:value-of disable-output-escaping="yes" select="$OnClickTargetAttribute"/>
</xsl:attribute>
</xsl:if>
<img class="image" src="{$SafeImageUrl}" title="{@ImageUrlAltText}">
<xsl:if test="$ImageWidth != ''">
<xsl:attribute name="width">
<xsl:value-of select="$ImageWidth" />
</xsl:attribute>
</xsl:if>
<xsl:if test="$ImageHeight != ''">
<xsl:attribute name="height">
<xsl:value-of select="$ImageHeight" />
</xsl:attribute>
</xsl:if>
</img>
</a>
</div>
</xsl:if>
<div class="link-item">
<xsl:call-template name="OuterTemplate.CallPresenceStatusIconTemplate"/>
<a href="{$SafeLinkUrl}" title="{@LinkToolTip}">
<xsl:if test="$ItemsHaveStreams = 'True'">
<xsl:attribute name="onclick">
<xsl:value-of select="@OnClickForWebRendering"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="$ItemsHaveStreams != 'True' and @OpenInNewWindow = 'True'">
<xsl:attribute name="onclick">
<xsl:value-of disable-output-escaping="yes" select="$OnClickTargetAttribute"/>
</xsl:attribute>
</xsl:if>
<xsl:value-of select="$DisplayTitle"/>
</a>
<div class="description">
<xsl:value-of select="@Description" />
</div>
</div>
</div>
</xsl:template>
Solução
Isso soa para mim como se você já tem uma versão copiada do ItemStyle.xsl e quer saber como personalizar o XSLT?Se este for o caso, existem algumas XSLT postagens no blog, no http://paylord.wordpress.com o que deve ajudar você a começar.
Desde SP2010 tem sido muito mais fácil adicionar novos campos, você simplesmente precisa adicioná-los ao seu XSLT e um novo "slot" vai aparecer em seus Campos Para Exibir como acima, onde você pode, em seguida, escolha a coluna que você gostaria de mapear a ele.Por exemplo:
<xsl:value-of select="@Newfield" />
Isto irá dar-lhe um novo slot chamado NewField, onde você pode digitar na coluna da lista.
Você também perguntou sobre onde encontrar OuterTemplate.Tanto o ContentQueryMain.xsl e o Cabeçalho.xsl são ligadas através do CQWP.A maioria das referências, tais como OuterTemplate estão em ContentQueryMain.xsl.
Outras dicas
Para adicionar um campo personalizado
1.Adicionar uma Consulta de Conteúdo da Web Part a uma página
2.Editar as propriedades do arquivo de Web Part para exibir campos personalizados.Para acessar o .webpart arquivo para a Web, sobre a Web Part menu Editar, clique em Exportar.
O SharePoint Server 2010 gera um .webpart arquivo com o conjunto completo de propriedades que estão disponíveis para esta Web Part.A .webpart arquivo é um arquivo XML que você pode editar usando um editor de texto.
3.No .webpart arquivo, localize o CommonViewFields propriedade.Use esta propriedade para especificar os campos adicionais que você deseja exibir na Web Part.Adicionar interna nomes das colunas e o tipo.
<property name="CommonViewFields" type="string">KB_x0020_Title,Text;Product,Text;</property>
4.Mapear esses interno nomes de coluna para as colunas " Título e Descrição que estão presentes nas transformações XSLT.Para fazer isso, edite o DataColumnRenames propriedade.
<property name="DataColumnRenames" type="string">KB_x0020_Title,Title;Product,Description</property>
5.Salve o .webpart arquivo localmente.
6.Na página Web, exclua o Conteúdo da Peça Web de Consulta que você adicionou na etapa 1.
7.Importar .webpart arquivo e adicionar a Web Part para a sua página.Para importar .webpart arquivo, clique em Página, clique em Adicionar Peças Web e, em seguida, clique em Importar.Procure o .peça web de ficheiro e, em seguida, clique em Upload.
8.Arraste a Peça Web para a zona apropriada na página.A Web Part deverá apresentar a Base de dados de Conhecimento Título e o nome do produto.Referência
Para fazer alterações nas colunas a ser apresentado e a forma como ele deve ser exibido de edição xsl.Consulte este para obter mais informações.