![](/img/trans.png)
[英]Update a colomn in a filtered SharePoint 2010 list using JQuery
[英]Read and Update SharePoint list using jQuery
我有2列的SP2010列表。
我想使用jQuery將“ Count”列的值更新為+1,其中“ ID” =“ Something”(在此處使用項目ID)。 有人可以幫我嗎? 任何代碼片段將不勝感激。
我正在嘗試此方法,但“計數”似乎沒有增加
<script src="/SiteAssets/Scripts/jquery-1.3.2.min.js"></script>
<script src="/SiteAssets/Scripts/jquery.SPServices-0.6.2.min.js"></script>
<script>
function UpdateCount(itemID)
{
var query = "<Query><Where><Eq><FieldRef Name='ID'/><Value Type='Number'>" + itemID + "</Value></Eq></Where></Query>";
var count;
$().SPServices({
operation: "GetListItems",
async: false,
listName: "CorpDir_Usage",
CAMLQuery: query,
completefunc: function(xData, Status) {
$(xData.responseXML).find("z\\:row").each(function() {
count = $(this).attr('ows_Count');
});
}
});
$().SPServices({
operation: "UpdateListItems",
async: false,
batchCmd: "Update",
listName: "CorpDir_Usage",
ID: itemID,
valuepairs: [["Count", count++]],
completefunc: function(xData, Status) {
}
});
}</script>
<script type="text/javascript">
$(document).ready(function(){
$("#ctl00_m_g_0b30e73d_3ca6_4db1_9760_0e5518e15614_ctl00_btnSimpleSearch").click(function(){
UpdateCount(1);
});
});
</script>
您可以將Firebug與Firefox結合使用來調試代碼。 通過此插件,您可以看到發送到服務器的Ajax請求及其響應。 這樣,您將能夠查看是否出了問題以及服務器說了什么。
我也認為“計數”需要解析為數字。
(請注意,您使用的是非常舊的jQuery版本,而SPServices不能與該非常舊的版本一起正常工作。此外,您還使用了SPServices的舊版本...)
否則,我認為最好在所有地方使用異步。 我不使用SPServices,但我認為您的代碼應該更像這樣:
<script src="/SiteAssets/Scripts/jquery-1.3.2.min.js"></script>
<script src="/SiteAssets/Scripts/jquery.SPServices-0.6.2.min.js"></script>
<script>
function UpdateCount(itemID) {
var query = "<Query><Where><Eq><FieldRef Name='ID'/><Value Type='Number'>" + itemID + "</Value></Eq></Where></Query>";
var count;
$().SPServices({
operation: "GetListItems",
listName: "CorpDir_Usage",
CAMLQuery: query,
completefunc: function(xData, Status) {
$(xData.responseXML).find("z\\:row").each(function() {
count = $(this).attr('ows_Count');
count = 1*count; // we need to make sure it's parsed as a number
$().SPServices({
operation: "UpdateListItems",
batchCmd: "Update",
listName: "CorpDir_Usage",
ID: itemID,
valuepairs: [["Count", ++count]],
completefunc: function(xData, Status) { alert("Count updated to "+count) }
});
});
}
});
}
</script>
<script type="text/javascript">
$(document).ready(function(){
$("#ctl00_m_g_0b30e73d_3ca6_4db1_9760_0e5518e15614_ctl00_btnSimpleSearch").click(function(){
UpdateCount(1);
});
});
</script>
我創建了一個具有不同語法的庫。 如果您想嘗試一下,它稱為SharepointPlus ,您的代碼將如下所示:
<script type="text/javascript" src="jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="sharepointplus-3.0.5.min.js"></script>
<script>
function UpdateCount(itemID) {
// find Count
$SP().list("CorpDir_Usage").get({fields:"Count",where:"ID = "+itemID}, function(data) {
if (data.length===0) alert("No item with this ID!")
else {
var count = data[0].getAttribute("Count")*1; // parse it as a number
// we update Count
$SP().list("CorpDir_Usage").update({ID:itemID, Count:++count}, {
error:function(items) { if (items.length > 0) alert("Error: Count has not been updated!") },
success:function(items) { if (items.length > 0) alert("Count updated!") }
});
}
})
}
</script>
<script type="text/javascript">
$(document).ready(function(){
$("#ctl00_m_g_0b30e73d_3ca6_4db1_9760_0e5518e15614_ctl00_btnSimpleSearch").click(function(){
UpdateCount(1);
});
});
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.