我正在使用SPServices来更新一个字段,但是它没有更新,并且导致无休止的挫折。
我已经能够使用此代码更新其他字段,因此我只能得出内部字段名称不正确的结论。
$().SPServices({
operation: "UpdateListItems",
async: false,
batchCmd: "Update",
listName: "Staff Rewards",
ID: $(this).attr("ows_ID"),
valuepairs: [["Processed%5Fx0020%5FDate", "Processed"]],
completefunc: function (xData, Status) {
}
});
InfoPath 2010中的字段名是"Processed Date",然而,一旦在SharePoint中使用视图URL提升字段名就变成了"Processed_x0020_Date",并且在列设置URL中字段名是:Processed%5Fx0020%5FDate
我已经尝试了所有这些字段的名称,仍然不能得到列表更新!
使用valuepairs
的语法,必须指定列静态名称和值的数组:
$().SPServices({
operation: "UpdateListItems",
async: false,
batchCmd: "Update",
listName: "Staff Rewards",
ID: $(this).attr("ows_ID"),
valuepairs: [["Processed_x0020_Date", "Processed"]],
completefunc: function (xData, Status) {
}
});
另外,确保为Update操作传递正确的List Item Id:
$(this).attr("ows_ID")
好了,终于想通了!我不得不使用"Inspect Element"来检查SharePoint认为我的字段的内部名称,你会相信吗?似乎出于某种原因,对于较长的名称,SharePoint只是在看起来像32个字符后终止它们....我的字段名(内部名称)显示在最后的HTML(看到使用"Inspect Element")的评论之一是"Previous_x0020_Request_x0020_Sta",其中显示名我有"上一个请求状态"
这是奇怪的,怎么会有人知道这个:-(哦,SharePoint!!
我可能在我的内部名称在32个字符后终止的结论是错误的,但我的代码现在工作!!使用截断后的名称....所以如果不是SharePoint,可能是SpServices的问题....但据我所知....这似乎是一个SharePoint问题…这就是现在的样子