Error message when you try to attach a file in a custom form on the Web site in Windows SharePoint Services 3.0: “This form was customized not working with attachement"

Article translations Article translations
Article ID: 953271 - View products that this article applies to.
Expand all | Collapse all

SYMPTOMS

You use Microsoft Office SharePoint Designer 2007 to add a Custom List Form Web Part on a Microsoft Windows SharePoint Services 3.0 site. Then, you try to attach a file by clicking Attach File in the custom form on the Web site. When you do this, you receive the following error message:
 This form was customized not working with attachement.

RESOLUTION

To resolve this problem, follow these steps:
  1. Apply hotfix 953749.

    For more information about how to do this, click the following article number to view the article in the Microsoft Knowledge Base:
    953749 Issues that are fixed in Windows SharePoint Services 3.0 by the Windows SharePoint Services 3.0 Infrastructure Update
  2. Edit the XSL code in the .aspx page. To do this, follow these steps, as appropriate for your situation.

    Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure. However, they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.

    For custom edit item forms and for custom new item forms
    1. In the XSL code block, locate the following code.
      <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>
      
      Note The XSLT code must have the ControlMode set to "New" for custom new item forms and to "Edit" for custom edit item forms.
    3. Locate the following line of code.
      <xsl:if test="$dvt_1_automode = '1'" ddwrt:cf_ignore="1">
    4. Paste the following code above the line of code that you located in step 2c.
      <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>
      
      Note This code sample is for a custom edit item form. If you use a custom new item form, replace ControlMode=”Edit” with ControlMode=”New” in the code.

      Additionally, in the __designer:bind attribute, the first parameter for the ddwrtDataBind function should be "'i'" (insert) for a custom new item form and "'u'" (update) for a custom edit item form.

      For example, the code may resemble the following code.
      <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. Save the form.
    For display forms
    1. Open the Custom List form.
    2. Move the cursor to the table cell in the custom form control where you want the attachment to be displayed. Then, right-click the cell, point to Insert, and then click Row Below. A new table row that has two column cells is created.
    3. Move the cursor to the left table cell of the new row, and then type Attachments.
    4. Move the cursor to the right-side table cell of the new row, switch to Code view, and then enter the following code.
      <SharePoint:AttachmentsField ControlMode="Display" FieldName="Attachments" runat="server" Visible="true"/>
    5. Save the form.
Notes
  • If you make more changes to the page, SharePoint Designer 2007 may automatically add a unique ID to the attachment code that you added. For example, “<tr id="idAttachmentsRow">” is changed to “<tr id="idAttachmentsRow{generate-id}">.”

    This process may cause JavaScript errors on the page. If this issue occurs, delete the “{generate-id}” tags that are added automatically.
  • You may receive the following error message:
    An unexpected error has occurred
    To resolve this issue, move the Custom List form outside the Web Part zone.
  • You receive the following a JavaScript error message:
    Can't move focus to the control because it is invisible, not enabled, or of a type that does not accept the focus.
    If you receive this error message, make sure that the ListForm Web Part that is on the page by default is still there. Then, set the Layout to Hidden, and close the Web Part. To do this, follow these steps:
    1. Right-click the List form Web Part in SharePoint Designer.
    2. Click Web Part Properties, and then click Layout.
    3. In the Layout dialog box, click to select Hidden, and then close the Web Part.

Properties

Article ID: 953271 - Last Review: May 23, 2011 - Revision: 2.0
APPLIES TO
  • Microsoft Windows SharePoint Services 3.0
  • Microsoft Office SharePoint Server 2007
Keywords: 
kbexpertiseadvanced kberrmsg kbtshoot kbprb KB953271

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com