使用代码与SharePoint交互的最佳方式是什么?试图找出正确的区域追求而不浪费时间。 C#? JavaScript的?
现在我只是想创建一个SharePoint列表驱动的Web部件...它基本上会创建一个导航栏,并且该导航栏上的名称/链接将显示在我的SharePoint上已配置列表。
答案 0 :(得分:1)
您可以将C#用于您的webpart功能。创建一个空项目,然后将webpart(非可视webpart)添加到项目中。使用C#对象模型查询SPList对象,然后执行foreach循环以将值吐出到导航栏中。
当您必须使用解决方案的不同版本号更新功能时,会出现C#的痛苦。除非您在功能升级过程中表现出色,否则这是非常好的以前版本的webpart实例卡在WP区域中,无论它们存储在哪个ASPX中。我将我的解决方案保留在1.0版本,然后在功能描述中记下版本号,该版本号显示在“站点设置”的功能列表中。
您可以将JavaScript用于您的网络部件功能。创建一个空项目,然后将webpart(非可视webpart)添加到项目中。在特定导航列表上调用Web服务以获取getitems。 Visual Studio将为列表所在的SP站点创建一个强名称类,该类存储该站点中所有列表的定义。如果导航列表发生更改,请刷新Web服务并更新此强名称类。
当您的Web部件运行时,Web服务将以登录的用户身份运行。因此要么确保所有访问者都具有查看权限,要么建立AD服务帐户来调用Web服务。一旦你的Javascript返回XML,使用像Lync到XML的parcer来获取数据并将HTML吐出到导航栏。
更多的是关于舒适的偏好而不是更好的偏好。如果您使用的是SharePoint 2013,请创建SP应用程序而不是服务器场功能。然后,您只能使用JavaScript和Web服务。
答案 1 :(得分:1)
你可以使用lists.asmx web服务和javascript,下面是我用来查询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'));
});
}
答案 2 :(得分:0)
我无法访问Sharepoint的后端(IT限制),所以我只是自动化使用JavaScript来完成这类任务,并且它适用于Sharepoint Web服务。
我已经创建了一个JavaScript API,我认为它非常有用且易于使用:SharepointPlus
否则,有一些替代方案,如热门SPServices。
所以我说这取决于你的需求,限制,技能以及最后你想要做的事情的复杂性。