我正在開發一個Web應用程序,需要獲取SharePoint上的文件夾和子文件夾,並將其放在表示層次結構的TreeView上。 我的應用程序沒有運行在與SharePoint相同的服務器上,所以我認爲最好的方法是通過Web服務。使用Web服務獲取SharePoint中的所有文件夾和子文件夾
所以我添加的Web引用SiteData.asmx到我的項目,發現下面的代碼:
Private Sub GetSiteData()
Dim RootFolder As String = "http://mySharepointServer/site/doc_site"
Dim DirWSSP As String = "http://mySharePointServer/_vti_bin/SiteData.asmx"
'Definitions of TreeView
Dim tree As TreeView
Dim raiz As TreeNode
Dim no As TreeNode
tree = Page.FindControl("trvFolder")
raiz = New TreeNode(RootFolder)
tree.Nodes.Clear()
tree.Nodes.Add(raiz)
' Definitions of web service
Dim service As New SP_SiteData.SiteData
service.Credentials = New System.Net.NetworkCredential("userID", "password", "domain")
Dim enArray() As SP_SiteData._sFPUrl
service.EnumerateFolder(RootFolder, enArray)
Dim en As SP_SiteData._sFPUrl
For Each en In enArray
If en.IsFolder Then
no = New TreeNode(en.Url)
raiz.ChildNodes.Add(no)
End If
Next
End Sub
我複製從一個論壇的代碼上msdn但不工作時,service.EnumerateFolder總是返回一個空數組,即enArray總是出現Nothing,並且出現錯誤:Object Reference未設置爲對象的實例。
此代碼適用? 還有另一種方法可以做到這一點? 我對web服務和web應用程序非常熟悉。 OBS:我正在使用Visual Studio 2010和SharePoint 2010