Hi jochk12345,
Check this example. Now please take its reference and correct your code.
HTML
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowCommand="GridView1_RowCommand"
OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
<Columns>
<asp:TemplateField>
<EditItemTemplate>
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
</EditItemTemplate>
<HeaderTemplate>
<asp:Button ID="Button1" runat="server" Text="copy row" OnClick="Button1_Click" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Id">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("id") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="name" HeaderText="name" />
<asp:TemplateField HeaderText="Country">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Country") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("Country") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="image">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("image") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Image ID="Image1" runat="server" Height="65px" ImageUrl='<%# Eval("image") %>' Width="93px" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="Linkselect" runat="server" CommandArgument='<%#Container.DisplayIndex%>'
CommandName="select">select</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="selectrow"
CommandArgument='<%#Container.DisplayIndex%>'>select to grid</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<HeaderStyle BackColor="#99FF66" />
</asp:GridView>
<br />
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="image">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("image") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Image ID="Image3" ImageUrl='<%# Eval("image") %>' runat="server" Height="89px" Width="115px" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="id">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("id") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="country">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("country") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("country") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Namespaces
C#
using System.Data;
VB.Net
Imports System.Data
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[4]{
new DataColumn("id",typeof(int)),
new DataColumn("name",typeof(string)),
new DataColumn("country",typeof(string)),
new DataColumn("image",typeof(string)) });
dt.Rows.Add(1, "joy", "Delho", "~/pics/3.jpg");
dt.Rows.Add(2, "roy", "Kerala", "~/pics/4.jpg");
dt.Rows.Add(3, "boy", "TN", "~/pics/5.jpg");
dt.Rows.Add(4, "roy", "andhra", "~/pics/7.jpg");
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "selectrow")
{
GridViewRow row = ((Control)e.CommandSource).NamingContainer as GridViewRow;
string id = (row.FindControl("Label1") as Label).Text;
string country = (row.FindControl("Label3") as Label).Text;
Image image = (Image)row.FindControl("image1");
DataTable dt = new DataTable();
if (ViewState["SelectedRow"] == null)
{
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("id"), new DataColumn("country"), new DataColumn("image") });
}
else
{
dt = ViewState["SelectedRow"] as DataTable;
}
DataRow[] dr = dt.Select("id=" + id);
if (dr.Length == 0)
{
dt.Rows.Add(id, country, image.ImageUrl);
ViewState["SelectedRow"] = dt;
}
GridView2.DataSource = ViewState["SelectedRow"] as DataTable;
GridView2.DataBind();
}
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
if (ViewState["SelectedRow"] == null)
{
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("id"), new DataColumn("country"), new DataColumn("image") });
}
else
{
dt = ViewState["SelectedRow"] as DataTable;
}
foreach (GridViewRow row in GridView1.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox chkRow = (CheckBox)row.Cells[0].FindControl("CheckBox1");
if (chkRow.Checked)
{
string id = (row.FindControl("Label1") as Label).Text;
string country = (row.FindControl("Label3") as Label).Text;
Image image = (Image)row.FindControl("image1");
DataRow[] dr = dt.Select("id=" + id);
if (dr.Length == 0)
{
dt.Rows.Add(id, country, image.ImageUrl);
ViewState["SelectedRow"] = dt;
}
}
}
}
GridView2.DataSource = ViewState["SelectedRow"] as DataTable;
GridView2.DataBind();
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim dt As DataTable = New DataTable()
dt.Columns.AddRange(New DataColumn(3) {
New DataColumn("id", GetType(Integer)),
New DataColumn("name", GetType(String)),
New DataColumn("country", GetType(String)),
New DataColumn("image", GetType(String))})
dt.Rows.Add(1, "joy", "Delho", "~/pics/3.jpg")
dt.Rows.Add(2, "roy", "Kerala", "~/pics/4.jpg")
dt.Rows.Add(3, "boy", "TN", "~/pics/5.jpg")
dt.Rows.Add(4, "roy", "andhra", "~/pics/7.jpg")
GridView1.DataSource = dt
GridView1.DataBind()
End If
End Sub
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs)
If e.CommandName = "selectrow" Then
Dim row As GridViewRow = TryCast((CType(e.CommandSource, Control)).NamingContainer, GridViewRow)
Dim id As String = (TryCast(row.FindControl("Label1"), Label)).Text
Dim country As String = (TryCast(row.FindControl("Label3"), Label)).Text
Dim image As Image = CType(row.FindControl("image1"), Image)
Dim dt As DataTable = New DataTable()
If ViewState("SelectedRow") Is Nothing Then
dt.Columns.AddRange(New DataColumn(2) {New DataColumn("id"), New DataColumn("country"), New DataColumn("image")})
Else
dt = TryCast(ViewState("SelectedRow"), DataTable)
End If
Dim dr As DataRow() = dt.[Select]("id=" & id)
If dr.Length = 0 Then
dt.Rows.Add(id, country, image.ImageUrl)
ViewState("SelectedRow") = dt
End If
GridView2.DataSource = TryCast(ViewState("SelectedRow"), DataTable)
GridView2.DataBind()
End If
End Sub
Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim dt As DataTable = New DataTable()
If ViewState("SelectedRow") Is Nothing Then
dt.Columns.AddRange(New DataColumn(2) {New DataColumn("id"), New DataColumn("country"), New DataColumn("image")})
Else
dt = TryCast(ViewState("SelectedRow"), DataTable)
End If
For Each row As GridViewRow In GridView1.Rows
If row.RowType = DataControlRowType.DataRow Then
Dim chkRow As CheckBox = CType(row.Cells(0).FindControl("CheckBox1"), CheckBox)
If chkRow.Checked Then
Dim id As String = (TryCast(row.FindControl("Label1"), Label)).Text
Dim country As String = (TryCast(row.FindControl("Label3"), Label)).Text
Dim image As Image = CType(row.FindControl("image1"), Image)
Dim dr As DataRow() = dt.[Select]("id=" & id)
If dr.Length = 0 Then
dt.Rows.Add(id, country, image.ImageUrl)
ViewState("SelectedRow") = dt
End If
End If
End If
Next
GridView2.DataSource = TryCast(ViewState("SelectedRow"), DataTable)
GridView2.DataBind()
End Sub
Screenshot