Monday 25 March 2013

this form was customized not working with attachment sharepoint 2007

Source--http://support.microsoft.com/kb/953271




  1. 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.

No comments:

Post a Comment