2010-08-12 31 views
1

我對Sharepoint非常陌生,我在Sharepoint網站上有一個aspx頁面,顯示字段列表,包括名字,姓氏等。我有一個控制檯在Visual Studio中,我用於測試一個Web服務與另一個Web服務之間的通信和數據傳輸能力;即Sharepoint和另一個Web服務。我的目標是使用來自其他Web服務的數據填充Sharepoint站點列表中的各個字段。我在我的Sharepoint服務器上使用對Web服務的Web引用來嘗試訪問Sharepoint站點上此特定列表中的字段。我有以下代碼:從Sharepoint頁面上的列表獲取字段

''Name of my web reference to Lists Web Service is "sharepoint" 
     Dim sharepointList As New sharepoint.Lists() 
     sharepointList.Credentials = System.Net.CredentialCache.DefaultCredentials 

     Dim testLists As XmlNode = sharepointList.GetListCollection 
     Dim xmlText As String = testLists.InnerXml 
     Dim xmlElement As XmlAttributeCollection = testLists.Attributes 

我一直在試圖找到這個特定列表的位置。我承認我不確定我應該在哪裏尋找,正如上面的代碼所示。我一直在使用調試器來分析上述每個變量,以試圖找到在XML中定義這個特定列表的位置。任何幫助或洞察力,表示讚賞。

下面是一個包含我試圖搜索列表中的SharePoint頁面的快照:

alt text

UPDATE:

我決定使用的GetList()函數,並通過了命名爲「新員工」。它最終抓住了上面的列表。現在我只想看看我是否可以訪問上面描述的字段,分析xml,它們看起來像只是顯示名稱,實際的fieldID是一些字母數字字符串,即Display Name =「Business Phone」has字段ID =「{fd630629-c165-4513-b43c-fdb16b86a14d}」。我想知道是否有方法通過顯示名稱搜索字段。

+0

'GetList'方法返回關於列表本身(模式)的信息,但不包含其中的實際數據。你想要的是['GetListItems'](http://msdn.microsoft.com/en-us/library/lists.lists.getlistitems%28v=office.12%29.aspx)方法,它接受一個查詢使用協作應用程序標記語言(CAML)編寫,它有點像SQL。您也可以告訴該方法只返回一個字段的某個子集,這是您通過列名或GUID指定的(這兩個字段都與Display Name相同)。 – CBono 2010-08-13 02:35:25

回答

0
+0

謝謝瑞恩,我會看看這些資源,看起來他們會非常有啓發性。我不只是尋找一個直接的答案,但也想了解我在做什麼以及它是如何工作的。 – kingrichard2005 2010-08-12 20:35:11

0

這是一個雙管齊下的做法。

首先,你需要從你的列表駐留在特定站點的背景下訪問SharePoint服務。例如,如果該URL到您的列表是:

http://sharepoint/foo/bar/baz/Lists/MyList

您將訪問列表Web服務來自:http://sharepoint/foo/bar/baz/_vti_bin/lists.asmx

現在您處於正確的網站集。剩下的步驟是在您調用其中一個List方法時通過名稱或GUID指定列表。例如,如果你調用UpdateListItems方法(這聽起來像你會),你會使用:

sharepoint.UpdateListItems("{B1DC8A9C-2316-41AD-875B-01C9D4BD19F8}", myUpdateXml); 

sharepoint.UpdateListItems("MyList", myUpdateXml); 

顯然,列表名稱將對應於實際列表您在列表的網址中看到的名稱。可以通過在SharePoint中查看列表找到GUID,然後導航到設置>列表設置並從URL中抓取GUID(查找List查詢字符串參數)。它將被編碼,但你可以使用像URL Decoder/Encoder這樣的工具來將它解碼爲適當的GUID。請務必記住在以GUID作爲參數發送時使用{}括號。

+0

嘿CBono,謝謝你的洞察力。我將添加到我的代碼,並找出如何使其在我的項目中工作。正如我所提到的,獲取列表訪問是第一步,最終我希望能夠使用來自其他Web服務的新數據填充此列表,這個應用程序可作爲處理該操作的中間人的原型。 – kingrichard2005 2010-08-12 20:38:52

+0

然後,您肯定會想要'UpdateListItems'方法(我的答案包含一個指向該方法的MSDN文檔的超鏈接)。 – CBono 2010-08-13 02:30:37

相關問題