目前我正在使用以下方法来获取服务器相对 URL
function getLibraryUrl(nameOrUrl)
{
var ctx = SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle(nameOrUrl);
ctx.load(list,'RootFolder');
ctx.executeQueryAsync(
function(){
var url=list.get_rootFolder().get_serverRelativeUrl();
return url;
},
function(sender, args)
{
});
}
Run Code Online (Sandbox Code Playgroud)
但是,我不想使用异步调用。任何人都可以指导我使用 REST API 获取文档库的服务器相对 URL。
像这样的 /_api/Web/Lists/getByTitle('')/items?$select=File/ServerRelativeUrl&$expand=File
下面,该功能适用于IE,这是好的,但我需要它在Chrome,FireFox等工作...在Chrome中我得到一个错误...继承我的代码
function loadList(list_name) {
var oList = context.get_web().get_lists().getByTitle(list_name);
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View><Query><Where><Geq><FieldRef Name=\'ID\'/>' + '<Value Type=\'Number\'>1</Value></Geq></Where></Query><RowLimit>10</RowLimit></View>');
this.collListItem = oList.getItems(camlQuery);
Run Code Online (Sandbox Code Playgroud)
...它在Chrome中说.."未捕获的TypeError:无法设置未定义的属性'collListItem'..
我假设这是来自"这个"..铬如何处理'这'并且处理'这'是有区别的吗?
我该怎么办?谢谢!
我试图隐藏左侧导航栏,它没有问题.现在唯一的问题是当我进入时:网站设置>用户权限>人员和群组
它隐藏了我在左侧创建的群组.是否有可能在所有网站中隐藏左侧导航栏并单独留下"人员和群组"?
我制作了自己的css文件并使用它来隐藏导航栏:
MyOwnCss.css:
#sideNavBox { DISPLAY: none }
#contentBox { margin-left: 0px }
Run Code Online (Sandbox Code Playgroud)
最好的祝福
安德鲁
我使用SharePoint 2013
和Performance Point Service
创建Business Intelligence
报告.
我需要在报告生成中使用更多功能.
我发现,Power View
在这种情况下可以帮助我,但我不知道How I can install and configure Power View
在SharePoint 2013
?
我正在使用小应用程序,这需要将所有用户都带到给定站点的所有组中.我有两个网站; SharePoint 2010在线运行和SharePoint 2013联机运行.我收到凭据错误...
{"The remote server returned an error: (401) Unauthorized."}
Run Code Online (Sandbox Code Playgroud)
public class Program
{
static void Main(string[] args)
{
string _siteURL = "https://intranet.co.uk";
NetworkCredential _myCredentials = new NetworkCredential("user", "password", "https://intranet");
ClientContext _clientContext = new ClientContext(_siteURL);
_clientContext.Credentials = _myCredentials;
Web _MyWebSite = _clientContext.Web;
GroupCollection _GroupCollection = _MyWebSite.SiteGroups;
_clientContext.Load(_GroupCollection);
_clientContext.Load(_GroupCollection,
groups => groups.Include(group => group.Users)
);
_clientContext.ExecuteQuery();
foreach (Group _group in _GroupCollection)
{
Console.WriteLine("Group Id " + _group.Id + " Group Title " + _group.Title);
UserCollection _userCollection = _group.Users; …
Run Code Online (Sandbox Code Playgroud) 我已经开发了一个非常简单的Provider-Hosted App,我将其部署到我们的SharePoint Online Developer Site.
测试进行得很顺利,我已经多次将其部署到网站上,然后在我点击F5后突然在Visual Studio 2012中收到此错误:
部署步骤"安装SharePoint应用程序"出错:已安装此应用程序的不同版本,版本号相同.您需要从站点和站点回收站中删除该应用程序以安装此版本.
问题是,在收到此错误之前,我刚刚从开发人员站点和回收站中删除/删除了我的应用程序.
不确定这是否相关:但我对该程序所做的一项更改是通过AppManifest.xml文件为Web作用域授予App Write权限.
我没有在Google搜索结果中找到任何有这个错误的人,所以我想我会是第一个在此发布的人.
任何帮助/想法?我是开发SP13的新手.
提前致谢
我正在使用SharePoint 2013,并且有一个自定义母版页和几个要部署的aspx布局页面,这些页面将被复制到"站点设置"中的"母版页和页面布局"部分.
这些aspx页面包含Web部件区域,但是如何在Web部件区域中的aspx页面的标记中添加Web部件?
我实际上要做的是将"默认"webpart嵌入到页面布局中,这样当为特定页面选择此布局时,它已经添加了webparts.
我说的是开箱即用的webparts,例如Content Editor webparts和Document Library Webparts.2013年,这些都被称为"应用程序".
任何建议都非常感谢.
通过使用SP.ClientContext
从Javascript结束,下面是我用来"更新"列表项的代码.只是:
var clientContext = new SP.ClientContext( siteURL );
spList = clientContext.get_web().get_lists().getByTitle( myListName );
this.spList_ExistingItem = spList.getItemById( itemID );
spList_ExistingItem.set_item( 'FullName', myFullName );
spList_ExistingItem.set_item( 'Age', myAge );
spList_ExistingItem.update();
clientContext.executeQueryAsync(succeeded_handler, fail_handler);
Run Code Online (Sandbox Code Playgroud)
这允许我通过一个条件查询update
列表项,这是:getItemById(itemID)
这里.
现在,让我们说,我要删除的项目是:
那么我如何使用多个条件进行此类查询.然后甚至要删除吗?
根据下面的答案,我发现与CSOM相比,REST API更容易和更清晰地用于Client/Javascript端.(那么,当然我已经将所有代码都改为REST API方式了.)
所以结论是,我建议使用REST API而不是CSOM(SP.ClientContext).
谢谢!:)
我有以下内容可以在SharePoint 2013中查找我的标准字段:
var requestURI = _spPageContextInfo.webAbsoluteUrl + "_api/web/lists/getbytitle('" + listname + "')/items?" +
"$select=ID,Title,Status";
$.ajax({
url: requestURI,
method: "GET",
headers: {"Accept": "application/json odata=verbose", "content/type" : "application/json odata=verbose"},
success: function(data) {
$.each(data.d.results, function(index, item) {
console.log('ID: ' + item.ID);
console.log('Title: ' + item.Title);
console.log('Status: ' + item.Status);
}
}
Run Code Online (Sandbox Code Playgroud)
返回这三个项目效果很好。我有一个问题,我有一个需要检索的字段,其中有一个空格“ Suspense Status”。我以前将SPServices与SharePoint 2007和此WebPart一起使用。有了它,我将使用“ Suspense_x0020_Status”来引用该字段。我已经尝试过使用REST:
console.log('Suspense Status: ' + item.Suspense_x0020_Status);
Run Code Online (Sandbox Code Playgroud)
运气不佳,正如预期的那样,但是我不确定如何获取此信息。我尝试过一种方法来查看JSON XML键,但也没有运气。
有谁知道我可以这样做,可以使用名称中的空格来引用该字段,还是可以查找共享点列表中引用的所有字段名称?或两者?
谢谢
通过REST从当前用户的配置文件获取URL时,更新src时将无法显示image标签:
<img id="escMyPic" src="" alt="" />
<script type="text/javascript">
$.ajax({
url: strURL + "/_api/sp.userprofiles.peoplemanager/getmyproperties",
type: "GET",
headers: {
"accept": "application/json;odata=verbose",
},
success: MyPictureSucceeded,
error: MyPictureFailed
});
function MyPictureSucceeded(data) {
if(data.d.PictureUrl != null) {
$('#escMyPic').attr('src', data.d.PictureUrl);
}
}
function MyPictureFailed() {
alert('Error: Unexpected error loading profile picture.');
}
</script>
Run Code Online (Sandbox Code Playgroud)
在SharePoint Online中,返回URL如下所示:https : //tenant-my.sharepoint.com : 443/ User%20Photos/ Profile%20Pictures/email_address_MThumb.jpg?t=63601764394
它将重定向到:https : //tenant-my.sharepoint.com/User%20Photos/Profile%20Pictures/email_address_MThumb.jpg?t=63601764394
使用浏览器开发工具,您会看到返回的mime类型不是image / jpg,而是text / plain。我删除了查询字符串参数,甚至将硬编码URL放在了图像标签src中,但它只是不显示。开发工具中的响应正文也为空白。在显示之前,它似乎正在重定向和认证。
将硬编码的URL放置在浏览器地址栏中时,图片会显示正常,而dev工具的响应标头将图片显示为URL的内容,而MIME类型是image / jpg。
您如何从REST呼叫中显示个人资料图像?
sharepoint office365 sharepoint-2013 office365-apps office365-restapi
sharepoint-2013 ×10
sharepoint ×7
csom ×2
javascript ×2
rest ×2
.net ×1
asp.net ×1
c# ×1
css ×1
office365 ×1
powerview ×1
spaces ×1
web-parts ×1