<%@ 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