Merge Cells Columns in Row of GridView

Satyapriyanayak
Posted by Satyapriyanayak under ASP.NET category on | Points: 40 | Views : 1826
Default.aspx code

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">
<title>Untitled Page</title>
</head>

<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False"
BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black"
Height="119px"
OnDataBound="GridView1_DataBound1" BackColor="White">
<Columns>
<asp:BoundField DataField="Country"
HeaderText="Country"
SortExpression="Country" />
<asp:BoundField DataField="State"
HeaderText="State"
SortExpression="State" />
<asp:BoundField DataField="City"
HeaderText="City"
SortExpression="City" />
</Columns>
<HeaderStyle BackColor="#FF8040" />
<EditRowStyle BackColor="#FFCC00" />
<AlternatingRowStyle BackColor="White" ForeColor="Black" />
</asp:GridView>
</div>
</form>
</body>
</html>

Default.aspx.vb code

Imports System.Data
Imports System.Data.SqlClient
Partial Class _Default
Inherits System.Web.UI.Page

Dim strConnString As String = System.Configuration.ConfigurationManager.ConnectionStrings.Item("ConnectionString").ToString()
Dim con As New SqlConnection(strConnString)
Dim str As String
Dim com As SqlCommand
Dim sqlda As SqlDataAdapter
Dim ds As DataSet

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

con.Open()
str = "select country,state,city from location order by state"
com = New SqlCommand(str, con)
Dim reader As SqlDataReader
reader = com.ExecuteReader()
GridView1.DataSource = reader
GridView1.DataBind()
con.Close()
End Sub

End Class

Protected Sub GridView1_DataBound1(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.DataBound

For rowIndex As Integer = GridView1.Rows.Count - 2 To 0 Step -1
Dim gviewRow As GridViewRow = GridView1.Rows(rowIndex)
Dim gviewPreviousRow As GridViewRow = GridView1.Rows(rowIndex + 1)
For cellCount As Integer = 0 To gviewRow.Cells.Count - 1
If gviewRow.Cells(cellCount).Text = gviewPreviousRow.Cells(cellCount).Text Then
If gviewPreviousRow.Cells(cellCount).RowSpan < 2 Then
gviewRow.Cells(cellCount).RowSpan = 2
Else
gviewRow.Cells(cellCount).RowSpan = gviewPreviousRow.Cells(cellCount).RowSpan + 1
End If
gviewPreviousRow.Cells(cellCount).Visible = False
End If
Next
Next

End Sub

Comments or Responses

Login to post response