SharePoint性能总结和一些开发经验(4)

21.        SPViewScope 介绍

Default :仅显示指定文件夹下的文件和子文件夹

FilesOnly :仅显示指定文件夹下的文件

Recursive :显示所有文件夹下的文件

RecursiveAll :显示所有文件夹下的所有文件和子文件夹

以上这个属性使用在 CAML 中,用于控制在哪些范围内进行查找,我们可以根据实际的查找需求,对这个 ViewAttribute 属性进行设置,来完成我们的操作。

22.        SPGridView 介绍

SPGridView GridView 的基础上,进行了一些扩展,也就是说他拥有 GridView 的所有功能,并且在其基础上有所改进。改进的主要是分组、分页、下拉菜单和 filter 功能。但是 SPGridView 不支持自动生成列,所以在使用的时候一定要将 AutoGenerateColums 属性设置成 false

23.        JavaScript replace 方法介绍

使用 JaveScript Replace 方法,这个方法支持使用正则表达式,如果不使用正则表达式的话,默认只是会替换第一个匹配的字符。所以我们采用 strM.replace(/&/g,"//") 来将字符串中的所有目标字符。所以将这个方法和相应的正则表达式进行配合使用,功能将是非常强大的。

24.        在使用

SPFolder folder = web.GetFolder(url);

这样是通过 url 直接得到 folder 对象,没有经过 list 那个级别,对 List 的数据还可能没有进行初始化,所以使用 folder.ParentListId 可能是空,从而取不到 List 对象。也就是说不能取这个 Folder 对象的对应的 Parent List 的对象的属性。

25.   当我们对Web 下的某些对象进行更新的时候,我们虽然调用了Web.Update() 方法,但是SharePoint 中的API 不会将Web 对象重新加载,也就是不会将一些新的MetaData 从数据库中重新加载到Web 对象中,这样就有可能造成对象不一致的现象。我们解决这个问题的方法是在我们使用Web 的时候,要重新获取一下Web 对象就可以了。

26.   使用CheckoutCheckin 方法的时候,首先要判断进行操作的文件的状态,如果没有被Checkout ,那就不能够被Checkin ,如果是Checkout 状态,就不能够再被Checkout 了。同时对文件的CheckOut 也就是相当于将文件添加了一个锁,标识一下这个文件的状态。如果这个文件被Checkout 出去之后,其他人就不能够对其进行Checkout 了,除非将其强制的Discard Checkout

27.   使用AllowUnSafeUpdate 属性的一些需要注意的地方,这个属性是为了阻止不安全更新的属性,如果我们要对Web 中的一些对象进行更新的时候,如果没有将这个属性设置成true 将会出现一个验证异常。如果HttpContext.Current 这个对象是Null 的话,那么这个属性将永远是true 。在使用这个属性的时候,一定要确定设置的是我们要进行更新的Web 对象,如果不是,在更新的时候将会出现异常,因为以前我们对Web 进行了一些操作,这样这个Web 对象就发生了变化,不再是我们现在这个Web 对象了,也就是导致了对象不一致,所以我们需要重新取得这个Web 对象,然后再设置这个属性即可。

28.        一般在 SharePoint 部署的时候,我们使用 WSP 对一些文件进行部署,同时更新 web.config ,但是有些时候需要对 web.config 添加一些自定义的节点,并且可能修改原来的节点,所以使用 WSP 不能够完全满足我们的需求,应该使用 WebConfigurationModification 类对 web.config 文件进行修改。如下所示:

using (SPSite siteCollection = new SPSite("http://chris:11111/sites/testconfig"))

            {

                using (SPWeb site = siteCollection.OpenWeb())

                {

                    site.AllowUnsafeUpdates = true;

                    SPWebApplication app = siteCollection.WebApplication;

                    SPWebConfigModification modification1 = new SPWebConfigModification();

                    modification1.Path = "configuration";

                     modification1.Name = "connectionStrings";

                    modification1.Value = " <connectionStrings></connectionStrings> ";

                    modification1.Owner = Assembly.GetExecutingAssembly().FullName;

                    modification1.Sequence = 100;

                    modification1.Type

 

=SPWebConfigModification.SPWebConfigModificationType.EnsureSection;

                    app.WebConfigModifications.Add(modification1);

           

                 SPWebService service = SPFarm.Local.Services.GetValue < SPWebService >

 

();

                    service.ApplyWebConfigModifications();

            }

      }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值