带覆盖的Sharepoint文档库图标(linkdocument)在一个列表中工作,但在另一个列表中不工作

带覆盖的Sharepoint文档库图标(linkdocument)在一个列表中工作,但在另一个列表中不工作,sharepoint,sharepoint-2010,Sharepoint,Sharepoint 2010,我不是SharePoint开发人员,但上周我一直在为我们的一款产品开发与SharePoint的集成。我感谢所有能得到的帮助 我有一个在SharePoint中创建链接文档的服务。这些文档保存到不同的文档列表中。链接文件如下所示: public string RedirectAspxPage(string ext) { var builder = new StringBuilder(); builder.Append("<%@ Assembly Name='Mi

我不是SharePoint开发人员,但上周我一直在为我们的一款产品开发与SharePoint的集成。我感谢所有能得到的帮助

我有一个在SharePoint中创建链接文档的服务。这些文档保存到不同的文档列表中。链接文件如下所示:

public string RedirectAspxPage(string ext) {
        var builder = new StringBuilder();
        builder.Append("<%@ Assembly Name='Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' %>");
        builder.Append("<%@ Register TagPrefix='SharePoint' Namespace='Microsoft.SharePoint.WebControls' Assembly='Microsoft.SharePoint' %>");
        builder.Append("<%@ Import Namespace='System.IO' %>");
        builder.Append("<%@ Import Namespace='Microsoft.SharePoint' %>");
        builder.Append("<%@ Import Namespace='Microsoft.SharePoint.Utilities' %>");
        builder.Append("<%@ Import Namespace='Microsoft.SharePoint.WebControls' %>");
        builder.Append("<html xmlns:mso=\"urn:schemas-microsoft-com:office:office\" xmlns:msdt=\"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882\">");
        builder.Append("<head>");
        builder.Append("<meta name=\"WebPartPageExpansion\" content=\"full\" /> <meta name='progid' content='SharePoint.Link' /> ");
        builder.Append("<!--[if gte mso 9]><SharePoint:CTFieldRefs runat=server Prefix=\"mso:\" FieldList=\"FileLeafRef,URL\"><xml>");
        builder.Append("<mso:CustomDocumentProperties>");
        builder.Append("<mso:ContentTypeId msdt:dt=\"string\">0x01010A00772E34FDFA9F4BC68135CD6CC9055E82</mso:ContentTypeId>");
        builder.Append("<mso:IconOverlay msdt:dt=\"string\">|" + ext + "|linkoverlay.gif</mso:IconOverlay>");
        builder.Append("<mso:URL msdt:dt=\"string\">{0}, {0}</mso:URL>");
        builder.Append("</mso:CustomDocumentProperties>");
        builder.Append("</xml></SharePoint:CTFieldRefs><![endif]-->");
        builder.Append("</head>");
        builder.Append("<body>");
        builder.Append("<form id='Form1' runat='server'>");
        builder.Append("<SharePoint:UrlRedirector id='Redirector1' runat='server' />");
        builder.Append("</form>");
        builder.Append("</body>");
        builder.Append("</html>");
        return builder.ToString();
    }
添加到列表中的参数documentName始终以.aspx结尾

现在谈谈实际问题。 对于一个文档列表,一切都很完美。在列表中,文档行显示了文件扩展名的正确图标,以及覆盖链接图标,试图获得屏幕截图,但尚未获得10个代表点

对于所有其他文档库,我只获得每个文档行的覆盖图标

列表中图标TD的标记不起作用:

<TD class=ms-vb-icon>
<IMG title=delux.aspx alt=delux.aspx src="/_layouts/images/DOCLINK.GIF" border=0>
</TD>
列表中图标TD的标记将起作用:

<TD class=ms-vb-icon>
<IMG title="ewf.aspx" alt="ewf.aspx" src="/_layouts/images/icdocx.png" border=0>
<IMG title="" class=ms-vb-icon-overlay alt="" src="/_layouts/images/linkoverlay.gif">
</TD>

SPListItem中有一个名为IconOverlay的特殊字段,您应该将其设置为等于linkoverlay.gif。 当您通过界面手动创建指向文档的链接时,如果该文档不存在,则SharePoint代码会将其添加到库中。在库中有该字段之前,将无法正确解析该字段

<TD class=ms-vb-icon>
<IMG title="ewf.aspx" alt="ewf.aspx" src="/_layouts/images/icdocx.png" border=0>
<IMG title="" class=ms-vb-icon-overlay alt="" src="/_layouts/images/linkoverlay.gif">
</TD>