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.
Description:
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.
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.
If you want change columns as rows we need to write code like as shown below
<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> |
Now in code behind add following namespace references
C# Code
using System; using System.Data; using System.Data.SqlClient; using System.Web.UI.WebControls; |
After that write the following code in code behind
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; } |
VB.NET Code
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 |
After that run your application output would be like this
Demo
No comments:
Post a Comment