如何使用其 InternalName 从 SharePoint 列表加载项目?据我所知,我可以使用 Id 或 Title 来获取它,如下所示:
var clientContext = new SP.ClientContext('/News/');
var web = clientContext.get_web();
var list = web.get_lists().getById("{1DBA9283-0AFA-4FA1-9BBA-70D8D190971F}");
...
如何使用其 InternalName 从 SharePoint 列表加载项目?据我所知,我可以使用 Id 或 Title 来获取它,如下所示:
var clientContext = new SP.ClientContext('/News/');
var web = clientContext.get_web();
var list = web.get_lists().getById("{1DBA9283-0AFA-4FA1-9BBA-70D8D190971F}");
...
它始终建议使用 ListUrl 获取列表,列表标题更改时不会更改。
不,CSOM 仅提供按 ID 或标题查询列表的方法。
请参阅http://msdn.microsoft.com/en-us/library/ee549620.aspx
SharePoint 列表架构目前不提供 InternalNames。请参阅架构描述http://msdn.microsoft.com/en-us/library/ms415091.aspx
托尔斯滕
我不知道你是不是这个意思,但是在我的 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 支持。
Edit2:获取和使用仅包含 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}','');" />
Edit3:在没有任何安全检查的情况下小心使用这个 JavaScript。因为例如您已将此解决方案交付给一个站点,该站点有两个列表。您建议使用此 JavaScript 的第一个和第二个。如果您有两个列表中都出现的自定义按钮,那么您在第二个列表中工作,但只要有可能,使用按钮触发到第一个列表。
假设您有一个清除内容的按钮,并且在两个列表中都有一个名为“标题”的列。如果您在第二个列表中并按下“删除标题”按钮而不是在第一个列表中,则具有相同 itemId 的项目的标题将被删除。在你的第二个清单上什么都没有发生。
如果指定的列表是您正在处理的列表,这会从您的按钮的可见性中出现并且没有检查。
舍吉特
编辑:滚动我的标签我发现了这个:Retrieve items from a folder with EcmaScript & COM
我想是你在 sharepoint stackexchange 上问了同样的问题。只是为了链接到我的答案,这里是链接。在那里,我给出了一个完整的示例,您如何使用它们的“internalName”(url)获取共享点列表