Pergunta

Tentei editar o xlstviewwebpart para editar o Customize.mas não obtive nenhuma pista para o meu cenário.

quero alterar o link do título no modo de edição em vez do modo de exibição nas páginas da webpart.

this view display in webpart page

quando o link no link do título é renderizado no modo de exibição

assim:

enter image description here

então quero abrir diretamente no modo de edição.alguém me guia, por favor?

Foi útil?

Solução

Existem várias maneiras de conseguir isso.

Acho que a maneira mais preferível é criar um campo computado.

1.Campo computado

A questão é que, na verdade, existem 5 campos "Título" em qualquer lista do SharePoint:

enter image description here

Primeiro armazena os dados, os outros 4 são Calculado e simplesmente gerar algum HTML, usando dados da primeira coluna.

Você pode usar uma abordagem semelhante e adicionar seu próprio campo computado à lista e, em seguida, adicioná-lo à exibição de lista.

Para adicionar um campo computado, você pode usar AdicionarFieldAsXml método.

Exemplo de uso AdicionarFieldAsXml para Calculado criação de campo:

P.S.A maneira mais segura de endereçar o formulário de edição é usar a página ListForm.aspx, da seguinte maneira:

/_layouts/listform.aspx?PageType=6&ListId={PUT-LIST-GUID-HERE}&ID=5

(O valor de PageType vai de Enumeração PAGETYPE)

2.Transformação XSL

Outra opção é usar os recursos XSLT do XsltListViewWebPart.Neste caso, você precisa escrever seu arquivo xsl e anexá-lo à visualização de lista, por exemplo, preenchendo SPView.XslLink propriedade.

Exemplo:

<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() &gt;= $FirstRow and position() &lt;= $LastRow)]"/>
  <xsl:param name="dvt_apos">'</xsl:param>

  <xsl:template match="FieldRef[@Name='LinkTitle']" mode="Computed_LinkTitle_body">
      <xsl:param name="thisNode" select="." />
      <a>
          <xsl:attribute name="href">/_layouts/listform.aspx?PageType=6&amp;ListId=<xsl:value-of select="$List" />&amp;ID=<xsl:value-of select="$thisNode/@ID" /></xsl:attribute>
          <xsl:attribute name="onclick">
              SP.UI.ModalDialog.showModalDialog({
                url: '/_layouts/listform.aspx?PageType=6&amp;ListId=<xsl:value-of select="$List" />&amp;ID=<xsl:value-of select="$thisNode/@ID" />'
              }); return false;
          </xsl:attribute>
          <xsl:value-of select="$thisNode/@Title"/>
      </a>
  </xsl:template>
</xsl:stylesheet>

P.S.Este código foi testado e funciona.

Outras dicas

Outra opção possível é se você abrir a visualização no Designer e adicionar seus elementos XSL

Alguém sabe alguma coisa sobre diferenças de desempenho nas três maneiras em grandes listas?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top