文章編號: 953271 - 上次校閱: 2008年9月12日 - 版次: 1.1

當您嘗試附加中自訂表單在 Windows SharePoint 3.0 中服務的網站上的檔案時,出現錯誤訊息: 「 此表單已自訂不使用附件"

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
全部展開 | 全部摺疊

徵狀

您使用 Microsoft Office SharePoint 設計工具 2007 Microsoft Windows SharePoint 服務 3.0 網站上新增自訂清單表單網頁組件時。 然後,您嘗試將檔案附加在網站上自訂的表單,即可 附加檔案。當您執行這項操作會收到下列錯誤訊息:
此表單已自訂不使用附件。

解決方案

如果要解決這個問題,請依照下列步驟執行:
  1. 套用 Hotfix 953749。

    如需有關如何執行這項操作的詳細資訊,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
    953749? (http://support.microsoft.com/kb/953749/ ) 在 Windows SharePoint 服務 3.0 中由 Windows SharePoint 服務 3.0 基礎結構更新所修正問題
  2. 編輯 XSL 程式碼,在.aspx 頁面中。如果要執行這項操作,請依照適合您情況這些步驟。

    Microsoft 僅,為了說明提供程式設計範例,不提供任何明示或默示的保證。這包括,但不限於適售性或適合某特定用途之默示擔保責任。本文假設您已熟悉使用我們所示範的程式設計語言以及建立和偵錯程序所使用的工具。Microsoft 技術支援工程師可以協助解釋特定程序的功能。不過,不會修改這些範例以提供附加功能或建構程序,以符合您特定需求。

    對於自訂編輯項目表單和自訂新的項目表單
    1. XSL 程式碼區塊中找出下列程式碼
      <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>
      
      附註 的 XSLT 程式碼必須具有 ControlMode 組為自訂新的項目表單的 [新增],並 「 編輯 」 的自訂編輯項目表單。
    3. 找出下列程式碼行
      <xsl:if test="$dvt_1_automode = '1'" ddwrt:cf_ignore="1">
    4. 貼上下列程式碼,您在步驟 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>
      
      附註 此程式碼範例是自訂編輯項目表單。如果您使用自訂的新項目表單,取代 ControlMode = 」 編輯 」 與 ControlMode = 」 新增 」 程式碼中。

      此外,__designer:bind] 屬性中的第一個參數 ddwrtDataBind 函式應該是"' i'"(插入) 自訂新項目表單和"' u'"(更新) 的自訂編輯項目表單。

      比方說程式碼可能會類似下列的程式碼。
      <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. 儲存表單。
    顯示表單
    1. 自訂清單] 表單開啟。
    2. 將游標移至表格中的儲存格自訂表單控制項,您想要顯示附件的位置。然後,在儲存格上按一下滑鼠右鍵,指向 [插入],然後再按一下 下方列。建立新的資料表資料列具有兩個資料行儲存格。
    3. 將游標移至新資料列的左邊的表格儲存格,然後鍵入 附加檔案
    4. 將游標移至新資料列的右邊顯示在表格儲存格切換至程式碼模式],然後再輸入下列程式碼
      <SharePoint:AttachmentsField ControlMode="Display" FieldName="Attachments" runat="server" Visible="true"/>
    5. 儲存表單。
備忘稿
  • 如果您對之網頁更多的變更 SharePoint 設計工具 2007年可能會自動新增專一識別碼給您加入的附件程式碼。 比方說 「 <tr id="idAttachmentsRow"> 」 變更為 「 <tr id="idAttachmentsRow{generate-id}"> 」

    這個處理程序可能會造成 JavaScript 錯誤頁面上。這個問題發生刪除自動加入 「 {產生-ID} 」 標籤。
  • 您可能會收到下列錯誤訊息:
    發生未預期的錯誤
    若要解決這個問題,移動 [網頁組件區域外的 [自訂清單表單]。
  • 您會收到下面 「 JavaScript 」 錯誤訊息:
    無法將焦點移到控制項,因為是不可見,未啟用或不接受焦點。
    如果您收到這個錯誤訊息,請確定是在預設情況下頁 「 ListForm 網頁組件 」 還在那裡。然後,將 版面配置 設定為 [隱藏,並關閉 [網頁組件。要這麼做,請您執行下列步驟:
    1. 清單表單 網頁組件在 SharePoint 設計工具 」 上按一下滑鼠右鍵。
    2. 按一下 [網頁組件內容,然後按一下 [版面配置]。
    3. [配置] 對話方塊中按一下以選取 [隱藏,然後關閉 [網頁組件]。

這篇文章中的資訊適用於:
  • Microsoft Windows SharePoint Services 3.0
  • Microsoft Office SharePoint Server 2007
關鍵字:?
kbmt kbexpertiseadvanced kberrmsg kbtshoot kbprb KB953271 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:953271? (http://support.microsoft.com/kb/953271/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。