Clicking Document Type Icon does not open document, Selects the Row Instead
Issue: SharePoint 2010 clicking type icon does not open document! Clicking Type Icon Selects the Row Instead of Opening the Document!!
Fix: Its a known issue! Microsoft released a KB article: http://support.microsoft.com/kb/2457975

In short: Copy Paste the below code as a file named: "fldtypes_docicon.xsl" and save it under 14 Hive folder of all WFEs: \14\template\layouts\XSL\ and do an IISReset!
Fix: Its a known issue! Microsoft released a KB article: http://support.microsoft.com/kb/2457975

In short: Copy Paste the below code as a file named: "fldtypes_docicon.xsl" and save it under 14 Hive folder of all WFEs: \14\template\layouts\XSL\ and do an IISReset!
<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" ddwrt:oob="true"> <xsl:output method="html" indent="no"/> <xsl:template ddwrt:dvt_mode="body" match ="FieldRef[@Name='DocIcon']" mode="Computed_DocIcon_body"> <xsl:param name="thisNode" select="."/> <xsl:param name="folderUrlAdditionalQueryString" select="''"/> <xsl:choose> <xsl:when test="$thisNode/@FSObjType='1'"> <xsl:variable name="alttext"> <xsl:choose> <xsl:when test="starts-with($thisNode/@ContentTypeId, "0x0120D5")"> <xsl:value-of select="$thisNode/../@itemname_documentset"/>: <xsl:value-of select="$thisNode/@FileLeafRef"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$thisNode/../@listformtitle_folder"/>: <xsl:value-of select="$thisNode/@FileLeafRef"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="mapico" select="$thisNode/@HTML_x0020_File_x0020_Type.File_x0020_Type.mapico"/> <xsl:variable name="folderIconPath"> <xsl:call-template name="GetFolderIconSourcePath"> <xsl:with-param name="thisNode" select="$thisNode"/> </xsl:call-template> </xsl:variable> <!-- This is a folder --> <xsl:choose> <xsl:when test="$RecursiveView='1'"> <img border="0" alt="{$alttext}" src="{$folderIconPath}" /> <xsl:choose> <xsl:when test="$thisNode/@IconOverlay != ''"> <img src="/_layouts/images/{$thisNode/@IconOverlay.mapoly}" class="ms-vb-icon-overlay" alt="" title="" /> </xsl:when> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:variable name="FolderCTID"> <xsl:value-of select="$PagePathFinal" />RootFolder=<xsl:value-of select="$thisNode/@FileRef.urlencode" /><xsl:value-of select="$ShowWebPart"/>&FolderCTID=<xsl:value-of select="$thisNode/@ContentTypeId" />&View=<xsl:value-of select="$View"/><xsl:value-of select="$folderUrlAdditionalQueryString"/> </xsl:variable> <a href="{$FolderCTID}" onmousedown ="VerifyFolderHref(this, event, '{$thisNode/@File_x0020_Type.url}','{$thisNode/@File_x0020_Type.progid}','{$XmlDefinition/List/@DefaultItemOpen}', '{$thisNode/@HTML_x0020_File_x0020_Type.File_x0020_Type.mapcon}', '{$thisNode/@HTML_x0020_File_x0020_Type}', '{$thisNode/@serverurl.progid}')" onclick="return HandleFolder(this,event,"{$PagePathFinal}RootFolder=" + escapeProperly("{$thisNode/@FileRef}") + '{$ShowWebPart}&FolderCTID={$thisNode/@ContentTypeId}&View={$View}{$folderUrlAdditionalQueryString}','TRUE','FALSE','{$thisNode/@File_x0020_Type.url}','{$thisNode/@File_x0020_Type.progid}','{$XmlDefinition/List/@DefaultItemOpen}','{$thisNode/@HTML_x0020_File_x0020_Type.File_x0020_Type.mapcon}','{$thisNode/@HTML_x0020_File_x0020_Type}','{$thisNode/@serverurl.progid}','{$thisNode/@CheckoutUser.id}','{$Userid}','{$XmlDefinition/List/@ForceCheckout}','{$thisNode/@IsCheckedoutToLocal}','{$thisNode/@PermMask}');"> <img border="0" alt="{$alttext}" title="{$alttext}" src="{$folderIconPath}" /> <xsl:choose> <xsl:when test="$thisNode/@IconOverlay != ''"> <img src="/_layouts/images/{$thisNode/@IconOverlay.mapoly}" class="ms-vb-icon-overlay" alt="" title="" /> </xsl:when> </xsl:choose> </a> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="$IsDocLib"> <a onfocus="OnLink(this)" href="{$thisNode/@FileRef}" onmousedown="return VerifyHref(this,event,'{$XmlDefinition/List/@DefaultItemOpen}','{$thisNode/@HTML_x0020_File_x0020_Type.File_x0020_Type.mapcon}','{$thisNode/@serverurl.progid}')" onclick="return DispEx(this,event,'TRUE','FALSE','{$thisNode/@File_x0020_Type.url}','{$thisNode/@File_x0020_Type.progid}','{$XmlDefinition/List/@DefaultItemOpen}','{$thisNode/@HTML_x0020_File_x0020_Type.File_x0020_Type.mapcon}','{$thisNode/@HTML_x0020_File_x0020_Type}','{$thisNode/@serverurl.progid}','{$thisNode/@CheckoutUser.id}','{$Userid}','{$XmlDefinition/List/@ForceCheckout}','{$thisNode/@IsCheckedoutToLocal}','{$thisNode/@PermMask}')"> <xsl:choose> <xsl:when test="not ($thisNode/@IconOverlay) or $thisNode/@IconOverlay =''"> <xsl:choose> <xsl:when test="not ($thisNode/@CheckoutUser.id) or $thisNode/@CheckoutUser.id =''"> <img border="0" alt="{$thisNode/@FileLeafRef}" title="{$thisNode/@FileLeafRef}" src="/_layouts/images/{$thisNode/@HTML_x0020_File_x0020_Type.File_x0020_Type.mapico}"/> </xsl:when> <xsl:otherwise> <xsl:variable name="alttext"><xsl:value-of select="$thisNode/@FileLeafRef"/><xsl:text disable-output-escaping="yes" ddwrt:nbsp-preserve="yes"> </xsl:text><xsl:value-of select="$thisNode/../@managecheckedoutfiles_header_checkedoutby"/>: <xsl:value-of select="$thisNode/@CheckoutUser.title"/></xsl:variable> <img border="0" alt="{$alttext}" title="{$alttext}" src="/_layouts/images/{$thisNode/@HTML_x0020_File_x0020_Type.File_x0020_Type.mapico}" /> <img src="/_layouts/images/checkoutoverlay.gif" class="ms-vb-icon-overlay" alt="{$alttext}" title="{$alttext}" /> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise > <img border="0" alt="{$thisNode/@FileLeafRef}" title="{$thisNode/@FileLeafRef}" src="/_layouts/images/{$thisNode/@IconOverlay.mapico}" /> <img src="/_layouts/images/{$thisNode/@IconOverlay.mapoly}" class="ms-vb-icon-overlay" alt="" title="" /> </xsl:otherwise> </xsl:choose> </a> </xsl:when> <xsl:otherwise> <img border="0" src="/_layouts/images/{$thisNode/@HTML_x0020_File_x0020_Type.File_x0020_Type.mapico}"> <xsl:attribute name="alt"> <xsl:value-of select="$thisNode/@Title"/> </xsl:attribute> <xsl:attribute name="title"> <xsl:value-of select="$thisNode/@Title"/> </xsl:attribute> </img> </xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet>
Has anyone found a solution for 2013 that doesn't involve customizing files in the 15 hive?
ReplyDeleteI am seeking same functionality and question for 2013. What a monumental mistake by Microsoft to kill the icon type document function
ReplyDelete