所以我开始学习C#,就像字面上刚刚开始学习,并且来自Java背景,它看起来并不太糟糕.但是,我有一个问题.我正在按照本教程使用客户端对象模型.刚从顶部开始,我添加了引用,但using Microsoft.SharePoint.Client;
一直给我一个错误,"命名空间'SharePoint'在命名空间'Microsoft'中不存在,但我清楚地看到它在右侧面板上.所以看着说明,我能想到的唯一区别是我使用的是Visual Studio Express,因此没有选择在创建新项目时选择使用哪个框架.除此之外,我不知道是什么问题可能是.有没有人对我可能缺少什么或如何纠正这个问题有任何想法?
我试图在SharePoint 2013中使用客户端对象模型访问库的ID.但我收到错误:
属性或字段"Id"尚未初始化.尚未请求或请求尚未执行.可能需要明确请求.
以下是我的代码:
var context = SP.ClientContext.get_current();
var web = context.get_web();
var items = SP.ListOperation.Selection.getSelectedItems(context);
var currentLibrary = web.get_lists().getById(SP.ListOperation.Selection.getSelectedList(context));
context.load(currentLibrary, 'id'); // Tried with 'Id' but still throws error
console.log(currentLibrary);
console.log("currentLibrary.get_id = " + currentLibrary.get_id()); // THROWS ERROR!
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
javascript sharepoint sharepoint-clientobject sharepoint-2013
我在使用ClientContext 的不同用户操作上调用了多种方法。在每个方法执行上创建它会导致性能问题。
因此,我将其添加为可重用性的静态变量,性能平均提高了 5 秒,但随后在某些方法中,它开始在ExecuteQuery()上出现“版本冲突”的随机问题。但是如果我删除静态和空检查,那么它每次都会刷新并且性能成为一个问题
有什么方法可以创建这个或至少不是每次调用的一个时间对象?ClientContext 的默认过期时间是多少?
创建 ClientContext 对象的代码:
public class SPConnection
{
public static ClientContext SharepointClientContext { get; set; }
public static ClientContext GetSharePointContext()
{
try
{
if (SharepointClientContext == null)
{
string appId = System.Configuration.ConfigurationManager.AppSettings["appId"];
string appSecret = System.Configuration.ConfigurationManager.AppSettings["appSecret"];
string siteUrl = System.Configuration.ConfigurationManager.AppSettings["siteUrl"];
var authManager = new OfficeDevPnP.Core.AuthenticationManager();
using (ClientContext clientContext = authManager.GetAppOnlyAuthenticatedContext(siteUrl, appId, appSecret))
{
SharepointClientContext = clientContext;
return clientContext;
}
}
else
return SharepointClientContext;
}
catch (Exception ex)
{ …
Run Code Online (Sandbox Code Playgroud) 我有一个大型文档库(目前~6000个文档),我需要根据自定义字段值(库上的自定义列)查找文档.
有没有办法在不迭代所有6000个文档的情况下获取此文档?
我知道迭代必须在某个时刻发生,但我希望它发生在SharePoint服务器端,而不是将它们全部传输到客户端然后挑选文档.
谢谢
我正在使用客户端对象模型与Sharepoint 2010交互.当我尝试使用客户端OM上载大于3 MB的文档时,它给出了错误错误请求.微软建议这样来解决问题.我试过并更新了maxReceivedMessageSize属性.它重新启动系统后工作正常,但不会应用于正在运行的sharepoint服务器.
我认为由于设置可能已保留在内存中,因此需要重置应用程序,但我会想出要重置的内容.我尝试过重置不同的Sharepoint服务.我尝试在IIS中重置Sharepoint网站.什么都没有帮助.
另外,如果我设置了10 MB的限制,我可以上传大约7.5 MB的文档.我认为这是因为额外的元数据(内容类型属性等).这是正确的行为还是我需要改变别的东西.
非常感谢任何帮助.
问候.
有人可以帮我理解SP.Folder的DeleteObject()和Recycle()方法之间的区别吗?
我找到了这个文档,但对我来说并不清楚.
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfolder.recycle.aspx
如果我知道相关的列表ID,是否可以通过唯一ID(无需编写Caml请求)获取SP列表项.
var item = list.GetItemById("CFA9E204-6509-424B-A246-0DE5295C42B2");
Run Code Online (Sandbox Code Playgroud)
当我尝试使用此代码获取项目时,我收到一个错误:"输入字符串的格式不正确."
GetItemById()方法有什么问题?
为什么它有一个带有字符串参数的重载方法GetItemById(),如果它只能理解整数Id?
编辑:
我使用SharePoint客户端对象模型,其中List实体没有方法GetItemByUniqueId(),但它有GetItemById()方法,它接收字符串或整数Id.
get uniqueidentifier sharepoint-2010 sharepoint-clientobject
我使用SharePoint客户端对象模型编写了一个小应用程序,该模型重命名SharePoint 2010文档库中的所有文件.一切都运行良好,除非文件名中间应包含一个点,它将被修剪,从点开始.
例如,当新文件名应为" my fi.le name "时,它最终会在SharePoint中显示" my fi ".顺便说一句,文件的扩展名(在我的例子中是.pdf)保持正确.
这是我正在做的(一般):
ClientContext clientContext = new ClientContext("http://sp.example.com/thesite);
List list = clientContext.Web.Lists.GetByTitle("mydoclibrary");
ListItemCollection col = list.GetItems(CamlQuery.CreateAllItemsQuery());
clientContext.Load(col);
clientContext.ExecuteQuery();
foreach (var doc in col)
{
if (doc.FileSystemObjectType == FileSystemObjectType.File)
{
doc["FileLeafRef"] = "my fi.le name";
doc.Update();
clientContext.ExecuteQuery();
}
}
Run Code Online (Sandbox Code Playgroud)
当我通过浏览器(编辑属性)手动重命名SharePoint中的文件时,一切都按预期工作:点保持不变,文件名根本不会被修剪.
是"FileLeafRef"
错误的财产?任何想法是什么原因在这里?
我创建了一个sharepoint页面,其中包含xslt webpart和与该问题无关的第二个webpart
当我们添加第二个webpart时,会隐藏功能区栏,您必须单击webpart才能再次显示功能区栏.单击webpart不是我们可以向用户询问的内容,因此我尝试使用xslt listview webpart的上下文始终显示功能区栏.
在搜索此问题时,我发现当您在SharePoint源代码中使用反射器搜索此隐藏的功能区行为时,似乎这是由Microsoft设计的行为,如下例所示:
public override bool Visible {
get {
if (!this.SingleWebPartPresentOnPage)
return false;
else
return base.Visible;
}
}
Run Code Online (Sandbox Code Playgroud)
有同样问题但没有解决方案的人:http://www.glynblogs.com/2011/02/list-view-selector-missing-with-multiple-web-parts-in-sharepoint-2010.html
是否可以使用服务器端代码强制使用功能区栏,或者可以在单击webpart显示功能区栏时调用正在使用的javascript代码?
我认为应该可以使用javascript,因为如果你单击xslt webpart,功能区是可见的,但我无法重现正在执行的代码.
我有一个名为"讨论列表"的列表.我想从列表中提取所有列.
我想知道如何做它的SharePoint客户端对象模型.
sharepoint ×8
c# ×4
.net ×1
csom ×1
directory ×1
get ×1
javascript ×1
new-operator ×1
recycle ×1
ribbon ×1
settings ×1