zoukankan      html  css  js  c++  java
  • CAML query for Group by count and data

    CAML query for Group by count and data

    Company Category Product Name
    Microsoft Developer Visual Studio
    Microsoft Consumer Windows
    Microsoft Enterprise SharePoint 2010
    Microsoft Mobile Windows 7
    Samsung Consumer Laptops
    Samsung Consumer Mobiles
    Samsung Consumer Tablet
    Google Consumer Search Engine
    Google Consumer Google Maps

    The above is my SharePoint List, I want to group by company’s name and then count the number of rows for each grouped by data and also display only chunk of data that is grouped.

    Company – Microsoft – 4 count

    Microsoft Developer Visual Studio
    Microsoft Consumer Windows
    Microsoft Enterprise SharePoint 2010
    Microsoft Mobile Windows 7

    Company – Samsung – 3 count

    Samsung Consumer Laptops
    Samsung Consumer Mobiles
    Samsung Consumer Tablet

    Company – Google – 2 count

    Google Consumer Search Engine
    Google Consumer Google Maps

    My  Solution – using CAML query LINQ

    using (SPSite site = new SPSite(“http://server“))
    
    {
    
    SPWeb web = site.OpenWeb();
    
    SPList listCAMLQuery = web.Lists["listName"];
    
    SPQuery query = new SPQuery(); // query for all the items
    
    DataTable dt = listCAMLQuery.GetItems(query).GetDataTable(); // get datatable for all the list items
    
    if (dt != null && dt.Rows.Count > 0)
    
    {
    
    //Group the data
    
    var groupedList = from row in dt.AsEnumerable()
    
    group row by row.Field<string>(“Company”) into groupedTable
    
    // Company is the column name for groupby
    
    // string is the type of column
    
    orderby groupedTable.Key // key is the groupby column category value
    
    select new
    
    {
    
    Key = groupedTable.Key, // key is the groupby column category value
    
    companyCount = groupedTable.Count(), // count for columns in a groupby
    
    groupedRows = groupedTable.CopyToDataTable() // grouped data
    
    };
    
    // print result
    
    foreach (var items in groupedList)
    
    {
    
    int count = items.companyCount; // count for columns in a groupby category
    
    DataTable dt1 = items.groupedRows;
    
    gv.DataSource = dt1; //gridview
    
    gv.DataBind();
    
    }
    
    }
    
    }
    
    }

  • 相关阅读:
    我所了解的meta
    移动端遇到的问题
    反编译工具
    Nginx安装及配置免费HTTPS证书
    Python中通过lambda抛异常的奇技淫巧
    理解PEP333-WSGI
    Doker学习笔记之一:安装
    《程序员修炼之道》备忘清单
    日常开发工具列表
    NLP入门资料
  • 原文地址:https://www.cnblogs.com/icedog/p/SharePoint.html
Copyright © 2011-2022 走看看