我不是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();
}
输入参数ext包含文件扩展名,例如:pdf或docx或txt等。 重定向页面通过以下方式保存到文档列表中:
string redirectAspx = RedirectAspxPage(originalExtension);
redirectAspx = redirectAspx.Replace("{0}", DocumentUrl);
var file = list.RootFolder.Files.Add(documentName, UTF8Encoding.UTF8.GetBytes(redirectAspx));
参数&#34; documentName&#34;被添加到列表的所有内容都以&#34; .aspx&#34;
结尾现在到了实际问题。 对于一个文档列表,一切都很完美。在列表中,文档行显示文件扩展名的正确图标以及叠加链接图标(尝试截屏但尚未有10个重复点)。
对于所有其他文档库,我只获得每个文档行的叠加图标。
列表中Icon 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>
答案 0 :(得分:0)
SPListItem中有一个名为IconOverlay的特殊字段,您应将其设置为“linkoverlay.gif”。 当您通过界面手动创建文档链接时,如果它不存在,则会通过SharePoint代码将其添加到库中。在库中有该字段之前,它将无法正确解析。