Artigo: 953271 - Última revisão: sexta-feira, 12 de Setembro de 2008 - Revisão: 1.1

Mensagem de erro quando tentar anexar um ficheiro num formulário personalizado no Web site no Windows SharePoint Services 3.0: ? este formulário foi personalizado não trabalhar com anexos"

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Reduzir tudo

Sintomas

Utilize o Microsoft Office SharePoint Designer 2007 para adicionar peça Web de formulário de lista personalizado num site Microsoft Windows SharePoint Services 3.0. Em seguida, tenta anexar um ficheiro, clicando em Anexar ficheiro no formulário personalizado no Web site. Quando o fizer, receberá a seguinte mensagem de erro:
Este formulário foi personalizado não funcionar com o anexo.

Resolução

Para resolver este problema, siga estes passos:
  1. Aplicar correcção 953749.

    Para obter mais informações sobre como efectuar este procedimento, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
    953749  (http://support.microsoft.com/kb/953749/ ) Problemas corrigidos no Windows SharePoint Services 3.0, a actualização de infra-estrutura do Windows SharePoint Services 3.0
  2. Edite o código XSL na página .aspx. Para o fazer, siga estes passos, conforme adequado à situação.

    A Microsoft fornece exemplos de programação apenas, para fins sem garantia expressa ou implícita. Isto inclui, mas não está limitado a, as garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação apresentada e as ferramentas que são utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento. No entanto, não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador.

    para formulários de item de edição personalizado e formulários personalizados do novo item
    1. No bloco de código XSL, localize o seguinte código.
      <xsl:template name="dvt_1">
                                      <xsl:variable name="dvt_StyleName">ListForm</xsl:variable>
                                      <xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row"/>
                                      <table border="0" width="100%">
                                                      <xsl:call-template name="dvt_1.body">
                                                                      <xsl:with-param name="Rows" select="$Rows"/>
                                                      </xsl:call-template>
                                      </table>
                      </xsl:template>
      
    2. Replace the lines of code that you located in step 2a with the following lines of code.
                      <xsl:template name="dvt_1">
      
                                      <xsl:variable name="dvt_StyleName">ListForm</xsl:variable>
      
                                      <xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row"/>
      
                                      <div>
      
                                                      <span id="part1">
      
                                                                      <table border="0" width="100%">
      
                                                                                      <xsl:call-template name="dvt_1.body">
      
                                                                                                      <xsl:with-param name="Rows" select="$Rows"/>
      
                                                                                      </xsl:call-template>
      
                                                                      </table>
      
                                                      </span>
      
                                                      <SharePoint:AttachmentUpload runat="server" ControlMode="Edit"/>
      
                                                      <SharePoint:ItemHiddenVersion runat="server" ControlMode="Edit"/>
      
                                      </div>
      
                      </xsl:template>
      
      Nota XSLT O código tem de ter o conjunto de ControlMode para 'Novo' para formulários personalizados do novo item e "Editar" para personalizada editar formulários de item.
    3. Localize a seguinte linha de código.
      <xsl:if test="$dvt_1_automode = '1'" ddwrt:cf_ignore="1">
    4. Cole o seguinte código acima da linha de código que localizou no passo 2 c.
      <tr id="idAttachmentsRow">
       <td nowrap="true" valign="top" class="ms-formlabel" width="20%">
         <SharePoint:FieldLabel ControlMode="Edit" FieldName="Attachments" runat="server"/>
        </td>
          <td valign="top" class="ms-formbody" width="80%">
           <SharePoint:FormField runat="server" id="AttachmentsField" ControlMode="Edit" FieldName="Attachments" __designer:bind="{ddwrt:DataBind('u','AttachmentsField','Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@Attachments')}"/>
                             <script>
      var elm = document.getElementById("idAttachmentsTable");
              if (elm == null || elm.rows.length == 0)
                document.getElementById("idAttachmentsRow").style.display='none';
                            </script> </td>
           </tr>
      
      Nota este código de exemplo é para um dicionário Editar formulário de itens. Se utilizar um formulário de novo item personalizado, substituir ControlMode = ? editar ? com ControlMode = ? novo ? no código.

      Para além disso, no atributo __designer:bind , o primeiro parâmetro para a função ddwrtDataBind deverá ser "' i'" (insert) para um dicionário item novo formulário e "' u'" (actualização) para um dicionário Editar formulário de itens.

      Por exemplo, o código pode ser semelhante o seguinte código.
      <SharePoint:FormField runat="server" id="AttachmentsField{$Pos}" ControlMode="New" FieldName="Attachments" __designer:bind="{ddwrt:DataBind('i',concat('AttachmentsField',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@Attachments')}"/>
      
    5. Guarde o formulário.
    para apresentar formulários
    1. Abra o formulário de lista personalizada.
    2. Mova o cursor para a célula de tabela no controlo de formulário personalizado onde pretende que o anexo a serem apresentados. Em seguida, clique com o botão direito do rato na célula, aponte para Inserir e, em seguida, faça clique sobre Linha abaixo . É criada uma nova linha da tabela que tenha duas células da coluna.
    3. Mover o cursor para a célula tabela esquerda da nova linha e, em seguida, escreva anexos .
    4. Mova o cursor para a célula de tabela do lado direito da nova linha, mude para vista de código e, em seguida, introduza o código seguinte.
      <SharePoint:AttachmentsField ControlMode="Display" FieldName="Attachments" runat="server" Visible="true"/>
    5. Guarde o formulário.
notas
  • Se efectuar mais alterações à página, o SharePoint Designer 2007 poderá adicionar automaticamente um ID exclusivo ao código de anexo que tenha adicionado. Por exemplo, ? <tr id="idAttachmentsRow"> ? é alterado para ? <tr id="idAttachmentsRow{generate-id}">. ?

    Este processo pode causar erros de JavaScript na página. Se ocorrer este problema, elimine os códigos de ? {gerar-id} ? que são adicionados automaticamente.
  • Poderá receber a seguinte mensagem de erro:
    Ocorreu um erro inesperado
    Para resolver este problema, mova o formulário de lista personalizada fora da zona Peça Web.
  • Recebe a seguinte mensagem de erro de JavaScript:
    Não é possível mover o foco para o controlo porque está invisível, não activado, ou de um tipo que não aceita o foco.
    Se receber esta mensagem de erro, certifique-se de que a peça Web ListForm no page por predefinição existe. Em seguida, defina o esquema para oculto e feche a peça Web. Para o fazer, siga estes passos:
    1. Clique com o botão direito do rato peça Web de formulário de lista no SharePoint Designer.
    2. Clique em Propriedades da peça Web e, em seguida, clique em esquema .
    3. Na caixa de diálogo esquema , clique para seleccionar oculto e, em seguida, feche a peça Web.

A informação contida neste artigo aplica-se a:
  • Microsoft Windows SharePoint Services 3.0
  • Microsoft Office SharePoint Server 2007
Palavras-chave: 
kbmt kbexpertiseadvanced kberrmsg kbtshoot kbprb KB953271 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 953271  (http://support.microsoft.com/kb/953271/en-us/ )