Here I will explain how to display gridview columns as rows in asp.net or display gridview rows as columns in asp.net using C# and VB.Net.
In previous post I explained jQuery Rating example in asp.net, SQL Query to get latest unique records, SQL Server Get records without weekends, save or upload files to server in asp.net, Download files folder in asp.net and many articles relating to asp.net, gridview, SQL Server. Now I will explain how to display gridview columns as rows in asp.net.
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Convert Gridview Columns as Rows in Asp.net</title>
<style type="text/css">
body
{
font-family:Calibri;
}
.gridcss
{
background:#df5015;
font-weight:bold;
color:White;
}
</style>
</head>
<body>
<form id="form1"
runat="server">
<table>
<tr>
<td><b>Normal Gridview</b></td>
<td> </td>
<td><b>Converted Gridview</b></td>
</tr>
<tr>
<td>
<asp:GridView ID="gvnormal"
runat="server">
<HeaderStyle BackColor="#df5015" Font-Bold="true" ForeColor="White" />
</asp:GridView>
</td>
<td> </td>
<td>
<asp:GridView ID="gvconverted"
runat="server"
OnRowDataBound=gvconverted_RowDataBound>
</asp:GridView>
</td>
</tr>
</table>
</form>
</body>
</html>
|
C# Code
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI.WebControls;
|
protected void
Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGridviewData();
}
}
protected void
BindGridviewData()
{
DataTable dt = new DataTable();
dt.Columns.Add("UserId",
typeof(Int32));
dt.Columns.Add("UserName",
typeof(string));
dt.Columns.Add("Education",
typeof(string));
dt.Columns.Add("Location",
typeof(string));
DataRow dtrow = dt.NewRow(); // Create New
Row
dtrow["UserId"]
= 1; //Bind Data to Columns
dtrow["UserName"]
= "SureshDasari";
dtrow["Education"]
= "B.Tech";
dtrow["Location"]
= "Chennai";
dt.Rows.Add(dtrow);
dtrow = dt.NewRow(); //
Create New Row
dtrow["UserId"]
= 2; //Bind Data to Columns
dtrow["UserName"]
= "MadhavSai";
dtrow["Education"]
= "MBA";
dtrow["Location"]
= "Nagpur";
dt.Rows.Add(dtrow);
dtrow = dt.NewRow(); //
Create New Row
dtrow["UserId"]
= 3; //Bind Data to Columns
dtrow["UserName"]
= "MaheshDasari";
dtrow["Education"]
= "B.Tech";
dtrow["Location"]
= "Nuzividu";
dt.Rows.Add(dtrow);
gvnormal.DataSource = dt;
gvnormal.DataBind();
gvconverted.DataSource =
ConvertColumnsAsRows(dt);
gvconverted.DataBind();
gvconverted.HeaderRow.Visible = false;
}
protected void
gvconverted_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[0].CssClass = "gridcss";
}
}
// This function is used to
convert columns to rows
public DataTable
ConvertColumnsAsRows(DataTable dt)
{
DataTable dtnew=new DataTable();
//Convert all the rows to columns
for (int i = 0; i <=
dt.Rows.Count; i++)
{
dtnew.Columns.Add(Convert.ToString(i));
}
DataRow dr;
// Convert All the Columns to
Rows
for (int j = 0; j <
dt.Columns.Count; j++)
{
dr = dtnew.NewRow();
dr[0] = dt.Columns[j].ToString();
for (int k = 1; k <=
dt.Rows.Count; k++)
dr[k] = dt.Rows[k - 1][j];
dtnew.Rows.Add(dr);
}
return dtnew;
}
|
|
Imports System.Data
Imports System.Web.UI.WebControls
Partial Class
Default2
Inherits System.Web.UI.Page
Protected Sub
Page_Load(ByVal sender As Object, ByVal e As
EventArgs) Handles Me.Load
If Not IsPostBack Then
BindGridviewData()
End If
End Sub
Protected Sub
BindGridviewData()
Dim dt As New DataTable()
dt.Columns.Add("UserId",
GetType(Int32))
dt.Columns.Add("UserName",
GetType(String))
dt.Columns.Add("Education",
GetType(String))
dt.Columns.Add("Location",
GetType(String))
Dim dtrow As DataRow =
dt.NewRow()
' Create New Row
dtrow("UserId")
= 1
'Bind Data to Columns
dtrow("UserName")
= "SureshDasari"
dtrow("Education")
= "B.Tech"
dtrow("Location")
= "Chennai"
dt.Rows.Add(dtrow)
dtrow = dt.NewRow()
' Create New Row
dtrow("UserId")
= 2
'Bind Data to Columns
dtrow("UserName")
= "MadhavSai"
dtrow("Education")
= "MBA"
dtrow("Location")
= "Nagpur"
dt.Rows.Add(dtrow)
dtrow = dt.NewRow()
' Create New Row
dtrow("UserId")
= 3
'Bind Data to Columns
dtrow("UserName")
= "MaheshDasari"
dtrow("Education")
= "B.Tech"
dtrow("Location")
= "Nuzividu"
dt.Rows.Add(dtrow)
gvnormal.DataSource = dt
gvnormal.DataBind()
gvconverted.DataSource =
ConvertColumnsAsRows(dt)
gvconverted.DataBind()
gvconverted.HeaderRow.Visible = False
End Sub
Protected Sub
gvconverted_RowDataBound(ByVal sender As Object, ByVal e As
GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.Cells(0).CssClass = "gridcss"
End If
End Sub
' This function is used to
convert columns to rows
Public Function
ConvertColumnsAsRows(ByVal dt As DataTable) As
DataTable
Dim dtnew As New DataTable()
'Convert all the rows to columns
For i As Integer = 0 To
dt.Rows.Count
dtnew.Columns.Add(Convert.ToString(i))
Next
Dim dr As DataRow
' Convert All the Columns to Rows
For j As Integer = 0 To
dt.Columns.Count - 1
dr = dtnew.NewRow()
dr(0) = dt.Columns(j).ToString()
For k As Integer = 1 To
dt.Rows.Count
dr(k) = dt.Rows(k - 1)(j)
Next
dtnew.Rows.Add(dr)
Next
Return dtnew
End Function
End Class
|
|
If you enjoyed this post, please support the blog below. It's FREE! Get the latest Asp.net, C#.net, VB.NET, jQuery, Plugins & Code Snippets for FREE by subscribing to our Facebook, Twitter, RSS feed, or by email. |
|||
Subscribe by RSS
Subscribe by Email
|
|||
|
|

Subscribe by RSS
Subscribe by Email
7 comments :
:)
-Jack
Sir i want to show latest update on the top of grid view means at 1 no. how chould i....???
How To Add pazing in Data List Control
and how to repeate grid record in coll um wise with pazing please sir tell me how can i implement this i will still wait your response. My mail is
sarvesh-it@hotmail.com please sir my project is in the pending.
sir I want swap row and Columns in gridview
In case We us Eval() for bind
heap plz sir..........
Sir I want to show show result format Pl help me how can do it
false solution
If I want to display data from Database table not our own data.. as you did in above example. how could we do..?