Hi dharmendr,
I want to rotate first and then edit and update
<style type="text/css">
.Grid td
{
background-color: #eee;
color: black;
font-family: Arial;
font-size: 10pt;
line-height: 200%;
cursor: pointer;
width: 100px;
}
.header
{
background-color: #6C6C6C !important;
color: White !important;
font-family: Arial;
font-size: 10pt;
line-height: 200%;
width: 100px;
text-align: center;
}
</style>
<asp:GridView ID="GridView1" CssClass="Grid" DataSourceID="GridDataSource" HeaderStyle-CssClass="header" onrowediting="OnRowEditing" OnRowUpdating="OnRowUpdating"
runat="server">
<Columns>
<asp:CommandField ShowEditButton="True" />
</Columns>
<HeaderStyle CssClass="header"></HeaderStyle>
</asp:GridView>
<br />
<asp:Button ID="btnConvert1" runat="server" Text="Convert Rows to Columns" OnClick="Convert"
CommandArgument="1" />
<asp:Button ID="btnConvert2" runat="server" Text="Convert Columns to Rows" OnClick="Convert"
CommandArgument="2" Visible="false" />
<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ %>" SelectCommand="SELECT * FROM [Customers1]"></asp:SqlDataSource>
<asp:sqldatasource id="CustomersSqlDataSource"
selectcommand="Select [CustomerID], [Name],[Country] From [Customers1]"
updatecommand="Update Customers SET Name=@Name, Country=@Country WHERE (CustomerID = @CustomerID)"
ConnectionString="<%$ %>"
runat="server">
</asp:sqldatasource>
Imports System.Data.SqlClient
Imports System.Data
Imports System.Web.Configuration
Imports System.Collections
Imports System.Configuration
Imports System.Linq
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.HtmlControls
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.WebControls.ListItem
Imports System.Xml.Linq
Imports DevExpress.Web.ASPxGridView
Imports System
Imports System.Net
Imports System.Text
Imports System.IO
Public Class Pallet
Inherits System.Web.UI.Page
Dim connectionString As String =
Public SqlConnection As New SqlConnection(connectionString)
'Declare a global SqlDataAdapter SqlDataAdapter
Public SqlDataAdapter As New SqlDataAdapter()
'Declare a global SqlCommand SqlCommand
Public SqlCommand As New SqlCommand()
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim dt As DataTable = (TryCast(SqlDataSource3.[Select](DataSourceSelectArguments.Empty), DataView)).ToTable()
ViewState("dt") = dt
BindGrid(dt, False)
End If
End Sub
Private Sub BindGrid(ByVal dt As DataTable, ByVal rotate As Boolean)
Me.GridView1.DataSourceID = ""
GridView1.ShowHeader = Not rotate
Me.GridView1.DataSource = dt
GridView1.DataBind()
If rotate Then
For Each row As GridViewRow In GridView1.Rows
row.Cells(0).CssClass = "header"
Next
End If
End Sub
Protected Sub Convert(ByVal sender As Object, ByVal e As EventArgs)
Dim dt As DataTable = CType(ViewState("dt"), DataTable)
If (TryCast(sender, Button)).CommandArgument = "1" Then
btnConvert1.Visible = False
btnConvert2.Visible = True
Dim dt2 As DataTable = New DataTable()
For i As Integer = 0 To dt.Rows.Count
dt2.Columns.Add("", GetType(String))
Next
For i As Integer = 0 To dt.Columns.Count - 1
dt2.Rows.Add()
dt2.Rows(i)(0) = dt.Columns(i).ColumnName
Next
For i As Integer = 0 To dt.Columns.Count - 1
For j As Integer = 0 To dt.Rows.Count - 1
dt2.Rows(i)(j + 1) = dt.Rows(j)(i)
Next
Next
BindGrid(dt2, True)
Else
btnConvert1.Visible = True
btnConvert2.Visible = False
BindGrid(dt, False)
End If
End Sub
Protected Sub OnRowEditing(sender As Object, e As GridViewEditEventArgs)
Dim dt As DataTable = CType(ViewState("dt"), DataTable)
GridView1.EditIndex = e.NewEditIndex
BindGrid(dt, True)
End Sub
Protected Sub OnRowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow AndAlso e.Row.RowIndex <> GridView1.EditIndex Then
TryCast(e.Row.Cells(0).Controls(2), LinkButton).Attributes("onclick") = "return confirm('Do you want to delete this row?');"
End If
End Sub
Protected Sub OnRowUpdating(sender As Object, e As GridViewUpdateEventArgs)
Dim dt As DataTable = CType(ViewState("dt"), DataTable)
Dim row As GridViewRow = GridView1.Rows(e.RowIndex)
Dim customerId As String = GridView1.DataKeys(e.RowIndex).Values(0).ToString
Dim name As String = TryCast(row.Cells(2).Controls(0), TextBox).Text
Dim country As String = TryCast(row.Cells(3).Controls(0), TextBox).Text
Dim constr As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Using con As New SqlConnection(constr)
Using cmd As New SqlCommand("UPDATE Customers SET Name = @Name, Country = @Country WHERE CustomerId = @CustomerId")
cmd.Parameters.AddWithValue("@CustomerId", customerId)
cmd.Parameters.AddWithValue("@Name", name)
cmd.Parameters.AddWithValue("@Country", country)
cmd.Connection = con
con.Open()
cmd.ExecuteNonQuery()
con.Close()
End Using
End Using
GridView1.EditIndex = -1
BindGrid(dt, True)
End Sub
' cancel row edit event
Protected Sub GridView1_RowCancelingEdit(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs)
Dim dt As DataTable = CType(ViewState("dt"), DataTable)
GridView1.EditIndex = -1
BindGrid(dt, True)
End Sub
End Class