小编Thr*_*gle的帖子

如何在CSOM请求中包含Project的FieldValues

我正在尝试使用客户端对象模型(CSOM)从SharePoint中提取所有项目信息.以下是我获取项目信息的方式:

projectContext.Load(projectContext.Projects,
    c =>
        c.Where(p => p.Id == new Guid(id))
            .IncludeWithDefaultProperties(f => f.Name, f => f.Owner.Id, f => f.CreatedDate,
                f => f.StartDate, f => f.FinishDate, f => f.PercentComplete, f => f.Description));

projectContext.Load(projectContext.LookupTables, c => c.Include(f => f.Id, f => f.Entries));
projectContext.Load(projectContext.Web.SiteUsers);
projectContext.ExecuteQuery();
Run Code Online (Sandbox Code Playgroud)

但是,我还需要从这些项目中检索FieldValues属性,我无法弄清楚如何将它包含在同一个查询中.我从上面的代码中检索项目后,发现如何在项目级别上执行此操作,如下所示:

var pubProject = project.IncludeCustomFields;
projectContext.Load(pubProject);
projectContext.Load(pubProject.CustomFields);

projectContext.ExecuteQuery();

var fieldValues = pubProject.FieldValues;
Run Code Online (Sandbox Code Playgroud)

现在pubProject将包含FieldValues信息,但是对所有项目使用该方法变得太慢(调用SharePoint需要1到4秒),因为我需要为每个项目提出额外请求,CSOM的最佳实践是尽量少打电话.

如果我在include字段中包含FieldValues ,如下所示:

projectContext.Load(projectContext.Projects,
    c =>
        c.Where(p => p.Id == new Guid(id))
            .IncludeWithDefaultProperties(f => f.Name, f => f.Owner.Id, f => f.CreatedDate,
                f => f.StartDate, …
Run Code Online (Sandbox Code Playgroud)

sharepoint sharepoint-2013 csom

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

如何确定浏览器是否支持超链接的数据URI

除浏览器嗅探外,有没有办法确定浏览器是否支持使用数据URI进行超链接?

这是上下文:

我创建一个链接,要么下载使用一个方便的数据URI或者,通过JavaScript产生,如果浏览器不支持使用数据URI的超链接信息的CSV文件,生成所需内容的HTML表格.

现在我的代码检查window.URL属性的存在,这在IE9及以下版本中不存在.(现在这个工作正常,因为我需要支持的IE用户在兼容模式下运行,模拟IE8.)

if(window.URL){
    downloadLink.href = "data:text/csv;charset=utf-8," + encodeURIComponent(data);
    downloadLink.setAttribute("download","download.csv");
}else{
    downloadLink.href= "#";
    downloadLink.innerHTML = "table view";
    downloadLink.onclick = function(){
        // build and display HTML table
        return false;
    };
}
Run Code Online (Sandbox Code Playgroud)

然而,有一个与在Internet Explorer中的新版本(10,11,以及边缘),它们支持的window.URL对象但有一些重叠不会允许数据URI的超链接.

如何确保下载CSV的链接永远不会显示给不支持此类功能的浏览器?

html javascript internet-explorer data-uri browser-feature-detection

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

如何检测是否启用了IndexedDB

我想知道如何在JavaScript中检测IndexedDB是否可用并启用.

我正在按照这些方针进行测试:

if (window.indexedDB) {
    if ((using_chrome && browserVersion >= 24)
        || (usingFirefox && browserVersion >= 16)
        || (usingIe && browserVersion >= 10)
        || (usingEdge && browserVersion >= 12)
        || (usingSafari && browserVersion >= 9)) {
        accessible = true;
    } 
} 
Run Code Online (Sandbox Code Playgroud)

但我更倾向于使用特征检测而不是依赖于版本号.

假设用于测试IndexedDB的功能检测是有效的,有没有人知道在页面加载上测试这个的好方法?

javascript browser-feature-detection

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

如何检查 NumLock 是否启用

最近,我遇到了一台笔记本电脑的问题,该笔记本电脑在某些时候(例如从睡眠模式中出来时)会自动禁用 NumLock。这促使我寻找以编程方式检查 NumLock 是否关闭的方法,如果是,则将其打开。

我正在寻找实现这一目标的最佳方法。我想在发生某些事件时运行该脚本,例如登录笔记本电脑时。我计划通过计划任务来完成此操作,并且我更喜欢使用 PowerShell 而不是 VBScript,但我很乐意使用任何有效的方法。

powershell

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