以编程方式计算sharepoint列表中的项目

时间:2011-10-20 13:14:46

标签: javascript jquery sharepoint

这是我的表
输入时间月
是的,1月份 是的2月号 没有Mar 是4月号

这是我得到的回报:
月是否否
1月1日0 2月2日0 3月3日3 4月0日4日

我想要的是我看起来像这样:

月是否否
1月1日0 2月1日0 3月1日 4月1日0

这是我的脚本。我正在绞尽脑汁,非常感谢任何帮助。感谢

<Script>
function processResult(xData, status) {


    var Month = [];
    var i = 0;  
var TableRow = "<table>"; 

    $(xData.responseXML).find("z\\:row").each(function() {
    var sType = $(this).attr("ows_Title");
    var sTime = $(this).attr("ows_Time");
    var sMonth = $(this).attr("ows_Month");
    i = i + 1;


if(Month[sMonth]==undefined)
{
Month[sMonth] = [0,0,0,0];
}
if(Month[sMonth]!=undefined)
{   
if (sTime == "Yes" && sType == "A"){Month[sMonth][0] = i}
if (sTime == "No" && sType == "A"){Month[sMonth][1] = i}
}


});
 var key = "";
    for(key in Month){
           TableRowHtml += "<TR><td style='text-align: Left'> " + key +" </td><td>" + Month[key][0] + "</td><td> "+ Month[key][1] + "</td><TR>";
            }

TableRowHtml +="</Table>";
        $("#tasksUL").append(TableRowHtml);
 }
</Script>

由于

2 个答案:

答案 0 :(得分:0)

尝试将var i;定义移到each函数中;现在你为每一行使用相同的i,因此它是累积的。小心关闭。

(等等,甚至 i?如果你没有尝试来保持累积,它似乎没有做任何有用的事情。 )

也不确定你是如何创建一个结构良好的表格,似乎你错过了第一个<table>标签。无论如何,见下文(未经测试)。

<Script>
function processResult(xData, status) {
    var Month = [];

    $(xData.responseXML).find("z\\:row").each(function() {
        var sType = $(this).attr("ows_Title");
        var sTime = $(this).attr("ows_Time");
        var sMonth = $(this).attr("ows_Month");
        i = i + 1;

        if (Month[sMonth] == undefined) {
            Month[sMonth] = [0,0,0,0];
        } else if (sType == "A") {
            var which = sTime == "Yes" ? 0 : 1;
            Month[sMonth][which] = i;
        }
    });

    var table = "<table>"; 
    for (var key in Month) {
        table += "<TR><td style='text-align: Left'> " + key +" </td>"
               + "<td>" + Month[key][0] + "</td><td> "+ Month[key][1] + "</td><TR>";
    }
    table += "</table>";

    $("#tasksUL").append(table);
}
</Script>

答案 1 :(得分:0)

我认为你正在寻找这个:

if (sTime == "Yes" && sType == "A"){Month[sMonth][0] = 1}
if (sTime == "No" && sType == "A"){Month[sMonth][1] = 0}