【问题标题】:How to retrieve a Document Library by it's ID in SharePoint using jquery如何使用 jquery 在 SharePoint 中通过其 ID 检索文档库
【发布时间】:2020-02-20 16:55:26
【问题描述】:

我在 CommandUI.Ribbon 上有一个自定义操作。它触发一个 SharePoint 加载项并将 ListID 作为参数发送。

在加载项页面中,我尝试上传文档(来自休息服务)。

当我尝试通过它的 ID 获取文档库时,它会退出调试器,我不知道为什么。

var ctx = SP.ClientContext.get_current();
var fileCreateInfo = new SP.FileCreationInformation();
fileCreateInfo.set_url(documentName);
fileCreateInfo.set_overwrite(true);
fileCreateInfo.set_content(content);

var parentList = ctx.get_web().get_lists().getById(listId);  //steps out here. 

难道getById方法不存在?

希望听到你们的消息......

【问题讨论】:

    标签: jquery sharepoint clientcontext


    【解决方案1】:

    如果您打算使用 JSOM 从 SharePoint 查询列表,您还应该执行 executeQuery。 JSOM的使用流程是:

    1. 获取上下文
    2. 将您需要的内容加载到上下文中
    3. 执行查询以初始化对象
    4. 在查询成功后得到你需要的数据。

    更多信息请参考msdn article

    我想根据您的需要,这种解决方案可能会起作用

    function retrieveAllListProperties() { var clientContext = SP.ClientContext.get_current(); var oWebsite = clientContext.get_web(); this.collList = oWebsite.get_lists().getById('[PLACE LIST GUID HERE]'); clientContext.load(collList); clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed)); } function onQuerySucceeded() { console.log(collList.get_title()); } function onQueryFailed(sender, args) { console.log('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }

    如果您有正确的上下文,并且列表存在并且所需的权限,则运行retrieveAllListProperties() 的输出应该是查询列表的标题。

    我希望这会有所帮助:)

    【讨论】:

    • 嗨,亚当,感谢您的遮阳篷。是的,我终于做了一个executeQueryAsync,但我的问题是,为什么它会跳出(停止调试)?我稍微重写了代码,所以我得到了当前 HostWeb 的上下文。 var clientContext = new SP.ClientContext(spHostUrl); var oWebsite = clientContext.get_web(); // ===> 调试器退出 现在它在 oWebsite 上退出(停止调试)...这与我试图在 AppWeb 中获取上下文有关吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 2017-08-03
    • 2017-07-24
    • 2023-03-21
    • 1970-01-01
    • 2021-04-10
    相关资源
    最近更新 更多