使用ECMAScript/JavaScript对象模型按内部名称获取SharePoint列表



如何使用其InternalName从SharePoint列表加载项?据我所知,我可以使用Id或标题获得它,如下所示:

var clientContext = new SP.ClientContext('/News/');
var web = clientContext.get_web();
var list = web.get_lists().getById("{1DBA9283-0AFA-4FA1-9BBA-70D8D190971F}");
...

no CSOM只提供按Id或Title查询列表的方法。

请参阅http://msdn.microsoft.com/en-us/library/ee549620.aspx

SharePoint列表架构目前不提供InternalNames。请参阅架构描述http://msdn.microsoft.com/en-us/library/ms415091.aspx

Thorsten

它总是建议使用ListUrl获取列表,当列表标题更改时,ListUrl不会更改。

我不知道你是不是这个意思,但在我的JavaScript文件中,如果我先声明这三行,我就可以使用对象模型。

/// <reference name="MicrosoftAjax.js" />
/// <reference path="file://C:/Program Files/Common Files/Microsoft Shared/Web Server Extensions/14/TEMPLATE/LAYOUTS/SP.core.debug.js" />
/// <reference path="file://C:/Program Files/Common Files/Microsoft Shared/Web Server Extensions/14/TEMPLATE/LAYOUTS/SP.debug.js" />

这是相关的代码,无需调用{SelectedItem}或其他东西即可工作:

var items = SP.ListOperation.Selection.getSelectedItems();
var listID = SP.ListOperation.Selection.getSelectedList();

这加载了客户端对象模型的(部分),所以我想你可以继续。因为IntelliSense支持这一点。

第2版:另一种只使用JavScript获取和使用列表的方法是

var web;  
var context;  
var listTitle = "ListName";  
function InitiateThisScript(itemId) {   
    context = new SP.ClientContext.get_current();  
    web = context.get_web();  
    list = web.get_lists().getByTitle(listTitle);  
    item = list.getItemById(itemId);  
    context.load(web;  
    context.load(list);  
    context.load(item);  
    context.executeQueryAsync(handleItem(item, list));  
}  

这种方式要求在Elements.xml中,我在其中定义了按钮,您称之为

CommandAction="javascript:InitiateThisScript('{SelectedItemId}','');" />

第三版:在没有任何安全检查的情况下小心使用此JavaScript。因为例如,您已经将此解决方案交付给了一个站点,该站点有两个列表。第一个是你建议使用这个JavaScript,第二个是。如果您的自定义按钮同时出现在两个列表中,则要处理第二个列表,但尽可能长时间地使用按钮会激发第一个列表
假设您有一个清除内容的按钮,并且在两个列表中都有一个名为"标题"的列。如果您在第二个列表中,并按下"删除标题"按钮,而不是在第一个列表中的,则具有相同itemId的项目的标题将被删除。在你的第二个清单上什么都没发生
如果指定的列表是您正在处理的列表,则这将从您的按钮的可见性中显示出来,并且不进行检查。

Shegit

编辑:滚动我的标签我发现了这个:检索项目从文件夹与EcmaScript&COM

我想是你在sharepoint stackexchange上问了同样的问题。为了链接到我的答案,这里有链接。在这里,我给出了一个完整的例子,说明如何使用"internalName"(url)

获取sharepoint列表

相关内容

  • 没有找到相关文章

最新更新