天天看點

Moss 2007 的幾個程式設計技巧

1、提升權限執行的代碼

SPSecurity.RunWithElevatedPrivileges(delegate()

{

    // 需要提升權限執行的代碼

});

應用場景:目前使用者可能沒有權限執行的操作,但系統需要執行這段代碼,這樣如果不提升代碼權限的話.

系統将會報出 拒絕通路錯誤.

用上述代碼可以将其所轄範圍内的代碼權限提升到最高.

建議:不到萬不得以不要使用,因為濫用會把系統的權限搞混.

2、解決一個或多個域類型未正确安裝。請轉到清單設定頁删除這些域

sharepoint清單内部字段的檢視方法

SPQuery查詢清單查不出結果,提示“一個或多個域類型未正确安裝。請轉到清單設定頁删除這些域”。

原因:

      查詢的時候,字段名稱需要輸入字段的内部名稱,而不是看到的那個名稱

解決方法:

      我寫了段代碼可以把字段以及對應的内部名稱列出來,查一下就可以了。

protected void Button2_Click(object sender, EventArgs e)

    {

        SPWeb site = SPControl.GetContextWeb(Context);

        SPListItemCollection items = site.Lists["測試清單1"].Items;

        string tmpstr = "";

        SPListItem item = items[0];

            for (int i = 1; i < item.Fields.Count; i++)

            {

                tmpstr = tmpstr+item.Fields[i].ToString()+":" + item.Fields[i].InternalName.ToString()+"<br><br>";

            }

            tmpstr = tmpstr + "<br><hr><br>";

        Label1.Text = tmpstr;

    }

3、解決代碼引發  Microsoft.SharePoint.Library.SPRequest.AddOrUpdateItem 安全性驗證無效

在更新語句前 

    加上:

      myWeb.AllowUnsafeUpdates = true;//該代碼表示允許代碼更新