只是一個問題:查詢SharePoint列表通過編程
什麼是與SharePoint與代碼交互的最佳方式?試圖找出正確的領域而不浪費時間。 C#? JavaScript的?
現在我只是試圖讓被SharePoint列表驅動的Web部件...它基本上會創建一個導航欄和跨導航欄中的名稱/鏈接將顯示。但是我有我的SharePoint列表配置。
只是一個問題:查詢SharePoint列表通過編程
什麼是與SharePoint與代碼交互的最佳方式?試圖找出正確的領域而不浪費時間。 C#? JavaScript的?
現在我只是試圖讓被SharePoint列表驅動的Web部件...它基本上會創建一個導航欄和跨導航欄中的名稱/鏈接將顯示。但是我有我的SharePoint列表配置。
您可以使用C#爲您的網頁組件的功能。製作一個空白的項目,然後在項目中添加一個webpart(非可視化webpart)。使用C#對象模型來查詢SPList對象,然後執行一個foreach循環來將值吐出到導航欄中。
與C#中的痛苦來當你有針對的解決方案不同的版本號更新您的功能。除非您對功能升級過程非常滿意。先前版本的webpart實例被卡在WP區域中,不管它存儲在哪個ASPX中。我將我的解決方案保留在版本1.0,然後記下功能描述中的版本號,該版本號顯示在「站點設置」的功能列表中。
您可以使用JavaScript來實現您的Web部件功能。製作一個空白的項目,然後在項目中添加一個webpart(非可視化webpart)。在特定的導航列表中調用web服務以獲取getitems。 Visual Studio將爲列表所在的SP站點創建一個強命名類,用於存儲該站點中所有列表的定義。如果您的導航列表發生更改,請刷新Web服務並更新此強命名的類。
當你的網絡的一部分運行,網絡服務將作爲被登錄的用戶運行。因此,要麼確保所有遊客有查看權限,或使AD服務帳戶來調用Web服務。一旦你的Javascript返回XML,使用像Lync這樣的Parcer來獲取數據並將HTML吐出到導航欄中。
它更多的是舒適的偏好比哪個更好。如果您使用的是SharePoint 2013,請製作一個SP應用程序而不是農場功能。那麼你只能使用JavaScript和Web服務。
更多信息。謝謝! – mwilson
您可以在lists.asmx web服務和javascript,波紋管是代碼taht我用它來查詢SharePoint列表。
var url = document.URL;
if(url.indexOf("https://") != -1)
{
var urllink = document.location.href.replace("https://","");
var prefix = "https://";
}
else
{
var urllink = document.location.href.replace("http://","");
var prefix = "http://";
}
var link = (urllink.split("/"))[0];
$(document).ready(function() {
var soapEnv =
"<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'> \
<soapenv:Body> \
<GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \
<listName>Web Pages</listName> \
<viewFields> \
<ViewFields> \
<FieldRef Name='Title' /> \
</ViewFields> \
</viewFields> \
</GetListItems> \
</soapenv:Body> \
</soapenv:Envelope>";
$.ajax({
url: prefix+link+"/_vti_bin/lists.asmx",
type: "POST",
dataType: "xml",
data: soapEnv,
complete: processResult,
contentType: "text/xml; charset=\"utf-8\""
});
});
var names = new Array();
var href = new Array();
var iterator;
function processResult(xData, status) {
$(xData.responseXML).find("z\\:row, row").each(function() {
names.push($(this).attr('ows_Title'));
href.push($(this).attr('ows_FileRef'));
});
}
我沒有訪問SharePoint(IT限制)的後端,所以我只能autorized使用JavaScript這類的任務,它與SharePoint Web服務的偉大工程。
我創建了一個JavaScript API,可是,我認爲,是非常有用的,易於使用:SharepointPlus
否則有喜歡流行SPServices一些替代品。
所以我會說這取決於你的需求,限制,技能和最後你想要做的複雜性。
你可以使用任何適合你的情況。既然沒有標準,什麼對你來說「更好」,這個問題就不能像現在這樣回答。 –