Here I will explain how to move or transfer selected checkbox gridview rows to another gridview in asp.net using c#, vb.net or copy one gridview row to another gridview in asp.net using c#, vb.net.
Description:
In previous posts I explained Display images in gridview from database in asp.net, Enable/Disable checkbox in gridview based on condition, asp.net gridview examples and bind data to textbox control in gridview, Bind data to dropdownlist in gridview and many articles relating to asp.net, c#, vb.net, c#, vb.net. Now I will explain how to move selected rows from one gridview to another gridview in asp.net using c#, vb.net.
In previous posts I explained Display images in gridview from database in asp.net, Enable/Disable checkbox in gridview based on condition, asp.net gridview examples and bind data to textbox control in gridview, Bind data to dropdownlist in gridview and many articles relating to asp.net, c#, vb.net, c#, vb.net. Now I will explain how to move selected rows from one gridview to another gridview in asp.net using c#, vb.net.
To implement this first we need to write the code in aspx page like this
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Tranfer selected gridview rows to another gridview in Asp.net</title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="gvDetails" AutoGenerateColumns="false" CellPadding="5" runat="server"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:CheckBox ID="chkSelect" runat="server" AutoPostBack="true" OnCheckedChanged="chkSelect_CheckChanged" /> </ItemTemplate> </asp:TemplateField> <asp:BoundField HeaderText="UserId" DataField="UserId" /> <asp:BoundField HeaderText="UserName" DataField="UserName" /> <asp:BoundField HeaderText="Education" DataField="Education" /> <asp:BoundField HeaderText="Location" DataField="Location" /> </Columns> <HeaderStyle BackColor="#df5015" Font-Bold="true" ForeColor="White" /> </asp:GridView> <br /> <b>Second Gridview Data</b> <asp:GridView ID="gvTranferRows" AutoGenerateColumns="false" CellPadding="5" runat="server" EmptyDataText="No Records Found"> <Columns> <asp:BoundField HeaderText="UserId" DataField="UserId" /> <asp:BoundField HeaderText="UserName" DataField="UserName" /> <asp:BoundField HeaderText="Education" DataField="Education" /> <asp:BoundField HeaderText="Location" DataField="Location" /> </Columns> <HeaderStyle BackColor="#df5015" Font-Bold="true" ForeColor="White" /> </asp:GridView> </div> </form> </body> </html> |
Now add following namespaces in codebehind
C# Code
using System; using System.Data; using System.Web.UI.WebControls; |
After that add following code in code behind
|
VB.NET Code
Imports System.Data Imports System.Web.UI.WebControls Partial Class VBCode Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load If Not IsPostBack Then BindGridview() BindSecondGrid() End If End Sub Protected Sub BindGridview() 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) gvDetails.DataSource = dt gvDetails.DataBind() End Sub Protected Sub chkSelect_CheckChanged(ByVal sender As Object, ByVal e As EventArgs) GetSelectedRows() BindSecondGrid() End Sub Protected Sub BindSecondGrid() Dim dt As DataTable = DirectCast(ViewState("GetRecords"), DataTable) gvTranferRows.DataSource = dt gvTranferRows.DataBind() End Sub Private Sub GetSelectedRows() Dim dt As DataTable If ViewState("GetRecords") IsNot Nothing Then dt = DirectCast(ViewState("GetRecords"), DataTable) Else dt = CreateTable() End If For i As Integer = 0 To gvDetails.Rows.Count - 1 Dim chk As CheckBox = DirectCast(gvDetails.Rows(i).Cells(0).FindControl("chkSelect"), CheckBox) If chk.Checked Then dt = AddGridRow(gvDetails.Rows(i), dt) Else dt = RemoveRow(gvDetails.Rows(i), dt) End If Next ViewState("GetRecords") = dt End Sub Private Function CreateTable() As DataTable Dim dt As New DataTable() dt.Columns.Add("UserId") dt.Columns.Add("UserName") dt.Columns.Add("Education") dt.Columns.Add("Location") dt.AcceptChanges() Return dt End Function Private Function AddGridRow(ByVal gvRow As GridViewRow, ByVal dt As DataTable) As DataTable Dim dr As DataRow() = dt.[Select]("UserId = '" & gvRow.Cells(1).Text & "'") If dr.Length <= 0 Then dt.Rows.Add() Dim rowscount As Integer = dt.Rows.Count - 1 dt.Rows(rowscount)("UserId") = gvRow.Cells(1).Text dt.Rows(rowscount)("UserName") = gvRow.Cells(2).Text dt.Rows(rowscount)("Education") = gvRow.Cells(3).Text dt.Rows(rowscount)("Location") = gvRow.Cells(4).Text dt.AcceptChanges() End If Return dt End Function Private Function RemoveRow(ByVal gvRow As GridViewRow, ByVal dt As DataTable) As DataTable Dim dr As DataRow() = dt.[Select]("UserId = '" & gvRow.Cells(1).Text & "'") If dr.Length > 0 Then dt.Rows.Remove(dr(0)) dt.AcceptChanges() End If Return dt End Function End Class | |
Demo
No comments:
Post a Comment