SharePoint性能總結和一些開發經驗(4)

    SharePoint性能總結和一些開發經驗(4)

21.       SPViewScope介紹

Default :僅顯示指定文件夾下的文件和子文件夾

FilesOnly:僅顯示指定文件夾下的文件

Recursive:顯示所有文件夾下的文件

RecursiveAll:顯示所有文件夾下的所有文件和子文件夾

以上這個屬性使用在CAML中,用於控制在哪些範圍內進行查找,我們可以根據實際的查找需求,對這個ViewAttribute屬性進行設置,來完成我們的操作。

22.       SPGridView介紹

SPGridViewGridView的基礎上,進行了一些擴展,也就是說他擁有GridView的所有功能,並且在其基礎上有所改進。改進的主要是分組、分頁、下拉菜單和filter功能。但是SPGridView不支持自動生成列,所以在使用的時候一定要將AutoGenerateColums屬性設置成false

23.       JavaScriptreplace方法介紹

使用JaveScriptReplace方法,這個方法支持使用正則表達式,如果不使用正則表達式的話,默認只是會替換第一個匹配的字符。所以我們採用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();

            }

      }

 

發佈了70 篇原創文章 · 獲贊 3 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章