<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="groupgrid.aspx.cs" Inherits="Demo.groupgrid" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>   
    <link href="Content/bootstrap.min.css" rel="stylesheet" />
</head>
<body>
    <form id="form1" runat="server">
        <div style="margin-left:30px;margin-top:10px">
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
                <Columns>
                    <asp:BoundField HeaderText="ID" DataField="ansId" Visible="false">
                    </asp:BoundField>
                    <asp:BoundField HeaderText="Name" DataField="QansId"></asp:BoundField>
                    <asp:BoundField HeaderText="Qty/Unit" DataField="ans"></asp:BoundField>
                </Columns>
            </asp:GridView>
        </div>
    </form>
</body>
</html>
using Demo.Models;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Demo
{
    public partial class groupgrid : System.Web.UI.Page
    {
        Database1Entities db = new Database1Entities();
        Tbl_option qt = new Tbl_option();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
               
gridbind();
            }
        }
        protected void gridbind()
        {
            var qtbl = (from a in db.Tbl_option select new { 
           
a.QansId,
            a.ans,
           
a.ansId}).ToList();
           
GridView1.DataSource = qtbl;
           
GridView1.DataBind();
           
ShowingGroupingDataInGridView(GridView1.Rows, 0, 3);  
        }
        void
ShowingGroupingDataInGridView(GridViewRowCollection gridViewRows, int startIndex, int totalColumns)
        {
            if (totalColumns == 0) return;
            int i, count = 1;
            ArrayList lst = new ArrayList();
            lst.Add(gridViewRows[0]);
            var ctrl =
gridViewRows[0].Cells[startIndex];
            for (i = 1; i <
gridViewRows.Count; i++)
            {
                TableCell nextTbCell =
gridViewRows[i].Cells[startIndex];
                if (ctrl.Text ==
nextTbCell.Text)
                {
                   
count++;
                   
nextTbCell.Visible = false;
                   
lst.Add(gridViewRows[i]);
                }
                else
                {
                    if (count > 1)
                   
{
                       
ctrl.RowSpan = count;
                       
ShowingGroupingDataInGridView(new GridViewRowCollection(lst), startIndex + 1, totalColumns - 1);
                   
}
                   
count = 1;
                   
lst.Clear();
                   
ctrl = gridViewRows[i].Cells[startIndex];
                }
            }
            if (count > 1)
            {
               
ctrl.RowSpan = count;
                ShowingGroupingDataInGridView(new GridViewRowCollection(lst),
startIndex + 1, totalColumns - 1);
            }
            count =
1;
           
lst.Clear();  
    }
}

 
No comments:
Post a Comment