在 JavaScript 中向 SharePoint List 添加新项
add new item to sharepoint list in javascript
我想使用 javascript 将一个新项目添加到我的 sharepoint 列表中。我直接从MSDN使用了代码,但它不起作用。我认为问题出在我声明的 siteUrl 上,因为当我设置这样的警报时:
var siteUrl = 'http://units.mil.intra/sites/DGHR/h/default.aspx';
function createListItem() {
alert('in function ');
var clientContext = new SP.ClientContext(siteUrl);
alert('before oList');
var oList = clientContext.get_web().get_lists().getByTitle('TestPostModification');
alert('after oList');
var itemCreateInfo = new SP.ListItemCreationInformation();
this.oListItem = oList.addItem(itemCreateInfo);
oListItem.set_item('Title', 'Item from de Hrnode!');
oListItem.update();
clientContext.load(oListItem);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
alert('Item created: ' + oListItem.get_id());
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + ''n' + args.get_stackTrace());
}
我收到第一个警报,但我没有得到alert('before oList');
所以我认为有一个问题:
var clientContext = new SP.ClientContext(siteUrl);
有人可以帮我吗?
ps:siteUrl在我们的内部网站上,所以你无法从你所在的地方访问它。
请添加以下内容:
ExecuteOrDelayUntilScriptLoaded(createListItem() ,"sp.js");
脚本"sp.js"必须在代码运行之前加载
这是因为siteURL
不能包含该页面。所以它应该是http://units.mil.intra/sites/DGHR/h/
的(它意味着你网站的根目录)。
提示:您可以使用Web控制台使用Firefox或Chrome调试代码,也可以安装像Firebug这样的插件。无需使用 alert()
,console.log()
提供了更多有用的信息。
此外,本机方法很难使用,而且不"漂亮"。如果使用jQuery对你来说不是问题,那么我建议使用第三个库,如SPServices或SharepointPlus。例如,使用 SharepointPlus,您的代码将变为:
// if your code runs somewhere under this website, then you don't need to provide the URL
var siteUrl = 'http://units.mil.intra/sites/DGHR/h/';
$SP().list("TestPostModification", siteUrl).add({Title:"Item from de Hrnode!"}, {
success:function(items) {
if (items.length === 1) alert("Item created: "+items[0].ID)
},
error:function(items) {
if (items.length > 0) alert("Request failed: "+items[0].errorMessage)
}
})
从我所看到的,你应该使用它作为siteUrlsiteUrl = 'http://units.mil.intra/sites/DGHR/h/';
您使用的 siteUrl 会将其定向到不需要的网页。该列表位于 sharepoint 网站中,并且您已经拥有代码中引用的列表名称//var oList = clientContext.get_web().get_lists().getByTitle('TestPostModification');
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 如何在javascript上向数组的对象添加新元素
- 如何在脚本上添加新行
- 在不刷新整个网格的情况下,向Asp.net网格视图添加新行
- 可以在Javascript中添加新的关键字吗
- 在Knockout中将新项添加到对象数组
- 如何在 JavaScript 中向结构添加新项
- Knockout.js向数组添加新项
- 无法从jQuery可排序列表中删除新添加的项
- 在 JavaScript 中向 SharePoint List 添加新项
- 在ItemFileWriteStore中添加引用为_reference的新项
- AngularJS在ng repeat中的新项上添加CSS类
- AngularJS:如何添加新的POST'将项添加到$scope而不刷新页面
- 添加新项的功能
- 当以手风琴方式打开外部菜单项时,无法向第一个子菜单项添加新的颜色类
- 在添加新的依赖项后,在反应样板中出现语法错误
- 在选择标签中添加新项并使用jquery刷新它,而无需刷新整个页面
- 添加新数组项时,带有外部模板的重复angularjs指令无法正确渲染
- 克隆tr以添加新项并替换选择框
- 添加新项并从顶部Javascript切片