• 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();
    
    }
    
    }
    
    }
    
    }

  • 相关阅读:
    升级到 classpath 'com.android.tools.build:gradle:1.0.0-rc1
    OnScrollListenerPro
    dp和px的转换
    ListView 中判断是否滚动到底部
    为什么setAdapter之后不能addHeadView或者addfooterView
    SwipeRefreshLayout使用小记
    Git-Flow 带你飞!
    在aws的ec2服务器上搭建nginx+php的环境
    PHP程序员的技术成长规划
    GeoHash核心原理解析
  • 原文地址:https://www.cnblogs.com/icedog/p/SharePoint.html
Copyright © 2020-2023  润新知