小编Mar*_*ark的帖子

检测ClientObject属性是否已被检索/初始化的正确方法

如果您正在使用SharePoint中的客户端对象模型,并且访问尚未初始化或已由其检索的属性

Context.Load(property); 
Context.ExecuteQuery();
Run Code Online (Sandbox Code Playgroud)

你得到一个例子:

Microsoft.SharePoint.Client.PropertyOrFieldNotInitializedException

要么

该集合尚未初始化.它没有被请求或者请求没有被执行.

例外.

如果已经初始化/检索这些属性,是否有任何正确的方法可以检查它们?没有Try/Catch方法.我不喜欢那个人.

我想在抛出异常之前检查并处理它.

我已经查过了

IsObjectPropertyInstantiated

IsPropertyAvailable

方法,但他们没有帮助.IsPropertyAvaiable仅检查标量属性,并且不会给出结果,例如Web.Lists,虽然未初始化IsObjectPropertyInstantiated,Web.Lists但返回true Web.Lists.

c# sharepoint csom

13
推荐指数
1
解决办法
1万
查看次数

OData substringof或startswith返回所有项目

我正在尝试从Rest Call中过滤我的结果.

$.ajax({
    type: "GET",
    headers: {
        "Accept": "application/json;odata=verbose"
    },
    dataType: "JSON",
    url: _spPageContextInfo.webServerRelativeUrl + "/_api/lists/getByTitle('Contacts')/items?$select=Title,Id&$startswith('Title','" + request.term + "') eq true",
    success: function (data) {
    },
    error: function (ex) {
    }
});
Run Code Online (Sandbox Code Playgroud)

在我的联系人列表中,我正在尝试检索以字符串开头或在其中包含字符串的项目的标题和ID,例如,这是某人的姓名.

我也尝试过substringof:

"/_api/lists/getByTitle('Contacts')/items?$select=Title,Id&$substringof(" + request.term + ",'Title') eq true"
Run Code Online (Sandbox Code Playgroud)

这也提供了相同的结果.

它为我提供了列表中的所有列表项,并且未应用过滤.我在看这里之后构建了Url for the Rest 使用SharePoint 2013 REST服务进行编程 就像在那里给出的Schema一样,我认为Url看起来不错,但似乎不是这样:)

编辑:

$filter在OData Uri约定中应用类似的方法给出了以下错误:

{"error":{"code":"-1, Microsoft.SharePoint.SPException","message":{"lang":"en-US","value":"The query is not valid."}}}
Run Code Online (Sandbox Code Playgroud)

尝试使用以下查询字符串:

_api/lists/getByTitle('Contacts')/items?$select=Title,Id&$filter=substringof(m,'Title') eq true

_api/lists/getByTitle('Contacts')/items?$select=Title,Id&$filter=substringof('m','Title') eq true

_api/lists/getByTitle('Contacts')/items?$select=Title,Id&$filter=substringof('m',Title) eq true
Run Code Online (Sandbox Code Playgroud)

rest jquery odata sharepoint-2013

8
推荐指数
2
解决办法
3万
查看次数

如何使用c#获取Sharepoint List

如何从特定列表项获取字段值.在我的情况下,我想获得Workplan列表的所有表单文件.实际上我想获得Workplan所有列表项并插入到sharepoint 2013关联数据库.

例

我尝试以下代码.

string strUrl = "http://example.com/default.aspx";
using (SPSite site = new SPSite(strUrl))
{
    using (SPWeb web = site.OpenWeb())
    {                 

        SPList list = web.Lists[52];
        SPQuery myquery = new SPQuery();
        myquery.Query = "";        
        SPListItemCollection items = list.GetItems(myquery);                

        foreach (SPListItem item in items)
        {
            if (item != null)
            {
                var Name = item.ListItems.Fields.List;
                Console.WriteLine("Name is :" + Name);
            }
        }  
    }
}
Run Code Online (Sandbox Code Playgroud)

c# sharepoint-2010

8
推荐指数
2
解决办法
4万
查看次数

无法打开与数据库的连接”在 C# 中创建表适配器时

所以,我正在维护一个前同事做的软件。他使用 xsd 为他的报告和其他内容创建 TableAdapter。

问题是,我需要添加一个新的 TableAdapter 并且出现上述错误。它还说“与 SQL Server 建立连接时发生与网络相关或特定于实例的错误”。

我在这里不知所措,我不知道该怎么办。以下是事实:

  • 我有 2 个连接字符串,一个用于生产环境,一个用于开发环境(我的电脑)。
  • 当我转到设置然后转到连接字符串的编辑窗口时,我点击了“测试连接”,它说它工作正常。
  • SQL Server 2008R2 和 Visual Studio 2010 都在同一台机器上,我的机器。
  • 我没有命名实例。
  • 我右键单击 xsd 设计视图,然后单击“添加 -> TableAdapter”并使用本地连接字符串(我已经测试和使用过的字符串)
  • 我单击“使用现有存储过程”,然后单击 [下一步]。然后我可以为 Select 部分选择一个存储过程,我可以看到列。
  • 我单击完成,系统锁定了一段时间,然后出现错误。
  • SQL Server 配置中启用了命名管道、TCP/IP。

我有点迷茫,我已经在这上浪费了 2 天。我已经尝试了我所知道的很少,但没有任何效果。我希望我能在你的智慧中找到帮助。

很抱歉这篇长文章,但我想一次性提供尽可能多的信息。

连接测试

服务状态

协议状态

创建 TableAdapter 时的连接选择

存储过程选择

错误

SQL Server 实例

c# sql-server

6
推荐指数
1
解决办法
4018
查看次数

Visual Studio Source Control恢复未撤消的挂起更改?

是的,我是那个白痴.但我确实在Pending Changes面板中选择了我要撤消的文件.它打开了一个新的对话框,我错误地假设它只包含我在主面板中做出的选择.我说要撤消一切和presto!一堆我不想撤消的东西被撤消了(很像毛衣歌.我是一个工具).所以我的问题是:无论如何要恢复我解除的工作?

version-control tfs visual-studio-2010

5
推荐指数
2
解决办法
7040
查看次数

使用Rest-Api将ListItem添加到列表文件夹

我在使用SharePoint 2013 REST API时在指定的文件夹中添加ListItem时遇到问题.

使用客户端对象模型,它看起来像这样:

    var creationInfo = new SP.ListItemCreationInformation();
    creationInfo.FolderUrl = "/Lists/MyList/MyFolder";
    var item = list.addItem(creationInfo );



    item.update();

    ctx.executeQueryAsync(
            Function.createDelegate(this, onSuccess),
            Function.createDelegate(this, onFail));
Run Code Online (Sandbox Code Playgroud)

但是当我试图通过Rest服务设置FolderUrl时

{ '__metadata' : { 'type': 'SP.Data.MyListListItem' }, 'Title': 'NewItemInFolder', 'FolderUrl': '/sites/example/Lists/MyList/MyFolder' }
Run Code Online (Sandbox Code Playgroud)

我得到了一个400 Bad Request

我还尝试首先将ListItem添加到List中,然后更新FolderUrl但这也不起作用.

如何使用Rest-Api将ListItem添加到SharePoint中的列表文件夹?

编辑:

 { '__metadata' : { 
            'type': 'SP.Data.MyListListItem',
            'type': 'SP.Data.ListItemCreationInformation'
    }, 
    'Title': 'NewItemInFolder',
    'FolderUrl': '/sites/example/Lists/MyList/MyFolder'
    }
Run Code Online (Sandbox Code Playgroud)

我现在尝试使用ListItemEntityTypeFullName我的List中的Entity和ListItemCreationInformation,但我也只得到400 Bad Request.

当我向Fiddler查询请求时,我发现SharePoint现在忽略了我的列表实体类型 SP.Data.MyListItem

javascript rest sharepoint-2013

5
推荐指数
1
解决办法
3868
查看次数

C#字符串数组替换最后一个元素

我有一个字符串数组,来自分裂的字符串

string[] newName= oldName.Split('\\');

newName.Last().Replace(newName.Last(), handover);
Run Code Online (Sandbox Code Playgroud)

为什么这不会替换我在Array中的最后一个元素?

last()来自使用linq

问候

c# arrays string replace

4
推荐指数
2
解决办法
3627
查看次数

无法识别List <InterfaceType>的扩展方法

我正在为一些BusinessObjects编写几个扩展方法

例如:

public static IBusinessObject GetBusinessObjectById<T>(this IBusinessObject businessObject, int id)
Run Code Online (Sandbox Code Playgroud)

现在,如果我创建一个类:

public class Topic : IBusinessObject
Run Code Online (Sandbox Code Playgroud)

然后我可以拨打我的分机:

topic.GetBusinessObjectById<Topic>(id);
Run Code Online (Sandbox Code Playgroud)

然而那是工作的东西,现在我试着写一个专注于List<IBusinessObject>以下内容的扩展:

public static List<T> GetItems<T>(this List<IBusinessObject> list)
Run Code Online (Sandbox Code Playgroud)

然后创建一个新的List:

List<Topic> topics = new List<Topic>();
Run Code Online (Sandbox Code Playgroud)

topics.GetItems<Topic>(); 给出了错误

List<Topic> 不包含GetItems的定义

如何编写一个扩展方法,该方法侧重于已实现我的接口的类的List实例?

c# extension-methods

3
推荐指数
1
解决办法
121
查看次数

使用身份验证令牌休息后呼叫

我正在尝试从我的客户端应用程序(WPF应用程序)向SharePoint Online(基于声明的Auth站点)发送Post请求.在这种情况下,它应该是对ListItem的更新,以将'Title'更改为'Test'.

我正在通过MsOnlineClaimsHelper类检索CookieContainer, 它成功地返回了一个身份验证令牌.

但是,当我尝试发送请求时,响应是 The remote server returned an error: (403) Forbidden.

WebRequest代码

try
{
    var claimshelper = new MsOnlineClaimsHelper(baseUrl, _userName, _password);
    var request = (HttpWebRequest)WebRequest.Create(baseUrl + "/" + url);

    request.CookieContainer = claimshelper.CookieContainer;
    request.Method = "POST";
    request.Headers.Add("X-HTTP-Method", "MERGE");
    request.Headers.Add("If-Match", "*");
    request.Accept = "application/json;odata=verbose";

    using (var streamWriter = new StreamWriter(request.GetRequestStream()))
    {
        streamWriter.Write(json);
        streamWriter.Flush();
    }

    var webResp = request.GetResponse() as HttpWebResponse;
    var theData = new StreamReader(webResp.GetResponseStream(), true);
    string payload = theData.ReadToEnd();
}
catch (Exception ex)
{


}
Run Code Online (Sandbox Code Playgroud)

休息网址:

/_api/lists/getbytitle('SampleList')/items(1) …

c# rest httpwebrequest sharepoint-2013

2
推荐指数
1
解决办法
7834
查看次数

使用样式表自定义 QTabWidget

如何设置 QTabWidget 的样式,如下图所示。

在此处输入图片说明

问题是:如果我设置样式表

QTabWidget:pane {
border: 1px solid gray;
}
Run Code Online (Sandbox Code Playgroud)

然后它看起来像这样:

[qt 可以做到][2]。

qt qtabwidget qstylesheet

2
推荐指数
1
解决办法
7865
查看次数

WPF C#获取TreeView的根节点

我有一个通过HierarchicalDataTemplate绑定的TreeView

        <HierarchicalDataTemplate x:Key="HierachrTree" DataType="{x:Type src:Ordner}" ItemsSource="{Binding UnterOrdner}">
                <TextBlock Text="{Binding OrdnerName}"/>
    </HierarchicalDataTemplate>
Run Code Online (Sandbox Code Playgroud)

多数民众赞成我的TreeView:

<TreeView Name="DokumentBrowser" ItemTemplate="{StaticResource HierachrTree}"
Run Code Online (Sandbox Code Playgroud)

现在我想得到第一个节点并将IsExpanded属性设置为false.

我试过这种方式

        ItemCollection ic = DokumentBrowser.Items;
        TreeViewItem tvi = (TreeViewItem)ic.GetItemAt(0);
        tvi.IsExpanded = false;
Run Code Online (Sandbox Code Playgroud)

但我无法将Object强制转换回TreeViewItem以获取IsExpanded属性.

c# wpf treeview

1
推荐指数
1
解决办法
6623
查看次数

List <T>的扩展方法不接受List <int>

我目前正在尝试扩展方法.我的目标是List的扩展方法,它在指定的索引之后找到适合集合中给定元素的第一个元素.

public static class Extensions
    {
        public static T FindFirstAfterIndex<T>(this List<T> list, int index, T item) where T : class                                                                                    where T : struct
        {
            return list.Skip<T>(index).Where<T>(result => result == item).First<T>();
        }
    }
Run Code Online (Sandbox Code Playgroud)

所以这适用于T类对象.

我也尝试过:

public static T FindFirstAfterIndex<T>(this List<T> list, int index, T item) where T : class          
                                                                             where T : struct
{
    return list.Skip<T>(index).Where<T>(result => result == item).First<T>();
}
Run Code Online (Sandbox Code Playgroud)

我是非常新的通用的东西,所以我怎么能定义我的where子句也接受List<int>呢?

马克

c# generics extension-methods

1
推荐指数
3
解决办法
1596
查看次数