• SharePoint开发中的小点滴 Document Library的URL


    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的使用.

  • 相关阅读:
    Linux企业运维人员最常用150个命令汇总
    【ASP.NET Core快速入门】(七)WebHost的配置、 IHostEnvironment和 IApplicationLifetime介绍、dotnet watch run 和attach到进程调试
    C#7.0新特性
    【转载】ASP.NET Core 依赖注入
    【ASP.NET Core快速入门】(六)配置的热更新、配置的框架设计
    【ASP.NET Core快速入门】(五)命令行配置、Json文件配置、Bind读取配置到C#实例、在Core Mvc中使用Options
    【ASP.NET Core快速入门】(四)在CentOS上安装.NET Core运行时、部署到CentOS
    Linux命令收集
    【ASP.NET Core快速入门】(二)部署到IIS
    【ASP.NET Core快速入门】(一)环境安装
  • 原文地址:https://www.cnblogs.com/MichaelZhang/p/document_library_rootfolder_url_matters.html
Copyright © 2020-2023  润新知