【问题标题】:Creating Statistics of a SharePoint list创建 SharePoint 列表的统计信息
【发布时间】:2011-12-15 13:59:21
【问题描述】:

我对 SharePoint 和 C# 完全陌生,但我现在必须按照我说的去做:P

目前我想构建一个 webpart 来显示一些项目状态的统计信息。

我们建立了两个列表: 一份项目清单 ProjectReports 的另一个列表

ProjectReport 包含对 Projects 的引用

我们希望能够显示以下内容:

状态为 RED 的项目数量:$x 黄色状态的项目数量:$x 状态为绿色的项目数量:$x

为此,我们只需要检查所有项目的最新项目报告。

当前想法:

  • 检查所有项目状态
  • 每个状态检查当前项目是否存在于数组中
  • 检查当前状态是否比存储在数组中的状态更新
  • 如果是,更换它,如果不是继续

虽然我真的被困在构建我想要的阵列上。我个人来自 PHP,我真的不喜欢不同类型的多维数组:P

我做了什么:

ArrayList arrayItems = new ArrayList();
foreach(SPListItem item in allData) 
{
   if(arrayItems.Contains(item.GetFormattedValue("Name"))) {
     // later
   } else {
     // Here i need to create the new array, i want to store it like:
     //arrayItems.add("Name", "latestDate");
   }
}

如您所见,这对我来说也很明显,这是行不通的。我真的只是想弄清楚这件事。

如果有人能指出我正确的方向,那就太好了。我必须寻找什么,这种“做我想要实现的事情的方式”有什么好处吗?有没有一种我根本不知道的更简单的解决方案?

无论如何,提前致谢!

山姆

【问题讨论】:

    标签: c# sharepoint-2010 arraylist web-parts


    【解决方案1】:

    您最好使用带键的集合构造,例如 Dictionary

    使用您的代码:

            var cItems = new System.Collections.Generic.Dictionary<string, DateTime>();
            foreach (SPListItem item in allData)
            {
                string sName;
                DateTime dtDate;
    
                sName = item.GetFormattedValue("Name");
                dtDate = (DateTime)item.GetFormattedValue("latestDate");
    
                if (cItems.ContainsKey(sName))
                {
                    // later
                }
                else
                {
                    cItems.Add(sName, dtDate);
                }
            }
    

    【讨论】:

    • 谢谢。我猜这都是知道什么是可能的问题。这正是我所需要的。非常感谢!
    猜你喜欢
    • 2021-12-18
    • 2011-08-28
    • 2020-02-27
    • 2014-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多