我在SharePoint 2013中管理请求列表,我需要从其他列表中导入一些请求。但是,我想保留原始请求日期,而不是让SharePoint分配我上传请求的当前日期/时间,因此我想更改默认值" Created"日期字段。我把这个用于我添加的日期专栏:
var duedate = new Date(2015,01,11).toISOString();
$().SPServices({
operation: "UpdateListItems",
async: false,
listName: "Requests",
ID: 5,
valuepairs: [["DueDate", duedate]],
completefunc: function (xData, Status) {
}
});
它不适用于" Created"尽管如此 - 我认为因为它是只读的。我需要一种方法来制作"创建"字段可编辑,所以我可以更改日期。我已经编写了很多引用此列的代码,所以我宁愿不创建一个默认为" Created"除非改变。
奖金:我的下一个任务是更改默认"作者"因此希望解决方案也可以使该字段可编辑。
答案 0 :(得分:4)
简短的回答:你不能。不支持通过SharePoint Web Services Created
操作更新Modified
,Created By
,Modified By
,UpdateListItems
等系统字段。
注意:
的方式更新Created By (Author)
和Modified By(Editor)
字段可以是 仅以非库 SharePoint列表
但有一个解决方法。基本上这些字段无法更新的原因是因为它们被声明为 ReadOnly 。因此,在修改列表模式以使系统字段可用于修改(将ReadOnly
属性设置为false)后,如下所示Created
字段:
var updateSystemFields = "<Fields>" +
"<Method ID='1'>" +
"<Field ID='{8c06beca-0777-48f7-91c7-6da68bc07b69}' ColName='tp_Created' RowOrdinal='0' ReadOnly='FALSE' Type='DateTime' Name='Created' DisplayName='Created' StorageTZ='TRUE' SourceID='http://schemas.microsoft.com/sharepoint/v3' StaticName='Created' FromBaseType='TRUE' Version='4' ShowInNewForm='FALSE' ShowInEditForm='FALSE' />" +
"</Method>" +
"</Fields>";
$().SPServices({
operation: "UpdateList",
listName: "Requests",
listProperties:"",
updateFields: updateSystemFields,
newFields: "",
deleteFields: "",
listVersion: "",
async: false,
completefunc: function (xData, Status){
console.log('List schema has been modified');
}
});
列表项Created
字段值可以使用UpdateListItems
操作进行更新:
var dueDateVal = new Date('2016-01-01 6:00:00').toISOString();
$().SPServices({
operation: "UpdateListItems",
async: false,
listName: "Requests",
ID: 1,
valuepairs: [["Created", dueDateVal]],
completefunc: function (xData, Status) {
console.log('List item has been updated');
}
});
答案 1 :(得分:0)
您无法更改创建的字段。我已完成了几个SP 2013项目,我必须跟踪和更新日期。我很快就知道我不能依赖创建日期。
我可能错了,我期待看到是否有任何解决方案出现