只是一个问题:查询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一些替代品。
所以我会说这取决于你的需求,限制,技能和最后你想要做的复杂性。
你可以使用任何适合你的情况。既然没有标准,什么对你来说“更好”,这个问题就不能像现在这样回答。 –