惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
Stack Overflow Blog
Stack Overflow Blog
人人都是产品经理
人人都是产品经理
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Y
Y Combinator Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
博客园 - 司徒正美
B
Blog RSS Feed
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
L
LangChain Blog

博客园 - Michael Zhang

MacBook Home End SLES Install cucumber soapui test web services S/4 HANA Solution Manager Linux下创建新用户 su with hyphen and without - su带横杠和不带横杠 2008 R2中的无线连接 wireless 不实用,还小有点意思-IE6 UI测试中的小发现 [转载]一个回收站小工具---RecycleBin Gotcha 尝试改变Survey完成后的默认行为(JavaScript) 添加新的站点栏目类型(New Custom Field (Column) Type) 完全控制SharePoint站点菜单(Get full control of SharePoint ActionMenus) Part 1 从WSS 3.0到MOSS 2007 WSS文档库备份及复制 如何备份sharepoint中的文档库? Document Library中Server Menu问题(New和Upload菜单消失) 站点迁移 从单机到服务器场 从上海到大连 又出现两个问题 关于Alert和WebDAV Sharepoint 2007 Forms认证与File Not Found错误
SharePoint开发中的小点滴 Document Library的URL
Michael Zhang · 2009-02-10 · via 博客园 - Michael Zhang

SharePoint的Document Library是存储数据的好地方,我们的项目在里面存了很多图纸,图纸之间有引用关系,所以我做了一个页面来显示图纸的引用关系,工作过程如下:

点击某个图纸文件, 弹出菜单,选择-->查看引用, 这时跳转到自己做的页面,同时通过url传入了文件路径, Source和RootFolder参数.

利用文件路径获得与之有引用关系的图纸,并显示他们.

代码如下(省略生成Query的业务代码):

                    using (SPSite site = new SPSite(source))
                    {
                        SPWeb web = site.OpenWeb();
                        web.AllowUnsafeUpdates = true;
                        SPListItem item = web.GetListItem(fileUrl);
                        SPList list = item.ParentList;

                        string listGuid = HttpUtility.ParseQueryString(SPEncode.UrlDecodeAsUrl(source))["ShowWebPart"];
                        source = source.Substring(0, source.IndexOf(".aspx") + 5);

                        SPView my = source.Contains("PersonalViews.aspx") ? list.Views[new Guid(listGuid)] : web.GetViewFromUrl(source);

                        //根据是Personal还是Public,分别获得SPView对象
                        my.Scope = SPViewScope.Recursive;//搜索范围是整个library的文件
                        SPQuery myq = new SPQuery(my);

                        myq.Query = query;

                        refContent.Text = list.RenderAsHtml(myq);//显示结果=SPView的样式和定义+自己的查询

                        web.AllowUnsafeUpdates = false;
                    }

其中当引用的图纸文件在同级或下一级文件夹中时,正常显示, 如果是在上一级中, 就不显示,

而通过调用list.GetItems(myq).Count.ToString()发现,Query确实能查询到有符合条件的文件存在.

在经历了4个小时左右的摸索后,突然想到是不是地址栏中RootFolder在作怪,

因为代码中并没有用到RootFolder,直接去掉,显示正常!

原来甚至通过list.RenderAsHtml(myq)获得的结果还是会受到地址栏里RootFolder的影响.

估计没有人会遇上我这个问题了,不过还是记录一下吧,提醒自己和大家以后注意sharepoint对地址URL的使用.