This way
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="width: 350px" valign="top">
<asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White"
runat="server" AutoGenerateColumns="false" EmptyDataText="No records found">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Id" HeaderText="Id" ItemStyle-Width="50" />
<asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="150" />
<asp:BoundField DataField="Country" HeaderText="Country" ItemStyle-Width="150" />
</Columns>
</asp:GridView>
</td>
<td style="width: 350px; padding-left: 5px" valign="top">
<asp:GridView ID="GridView2" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White"
runat="server" AutoGenerateColumns="false" EmptyDataText="No records found">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Id" HeaderText="Id" ItemStyle-Width="50" />
<asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="150" />
<asp:BoundField DataField="Country" HeaderText="Country" ItemStyle-Width="150" />
</Columns>
</asp:GridView>
</td>
</tr>
</table>
<br />
<asp:Button Text="<<" runat="server" OnClick="TransferLeft" />
<asp:Button Text=">>" runat="server" OnClick="TransferRight" />
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt1 = new DataTable();
dt1.Columns.AddRange(new DataColumn[3] { new DataColumn("Id"), new DataColumn("Name"), new DataColumn("Country") });
dt1.Rows.Add(1, "John Hammond", "United States");
dt1.Rows.Add(2, "Mudassar Khan", "India");
dt1.Rows.Add(3, "Suzanne Mathews", "France");
dt1.Rows.Add(4, "Robert Schidner", "Russia");
ViewState["dt1"] = dt1;
GridView1.DataSource = dt1;
GridView1.DataBind();
}
}
protected void TransferRight(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
if ((row.FindControl("CheckBox1") as CheckBox).Checked)
{
DataTable dt1 = (DataTable)ViewState["dt1"];
DataTable dt2;
if (ViewState["dt2"] == null)
{
dt2 = dt1.Clone();
}
else
{
dt2 = (DataTable)ViewState["dt2"];
}
DataRow dr = dt1.Select("Id = " + row.Cells[1].Text)[0];
dt2.ImportRow(dr);
dt1.Rows.Remove(dr);
ViewState["dt1"] = dt1;
ViewState["dt2"] = dt2;
GridView1.DataSource = dt1;
GridView1.DataBind();
GridView2.DataSource = dt2;
GridView2.DataBind();
}
}
}
protected void TransferLeft(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView2.Rows)
{
if ((row.FindControl("CheckBox1") as CheckBox).Checked)
{
DataTable dt1 = (DataTable)ViewState["dt1"];
DataTable dt2 = (DataTable)ViewState["dt2"];
DataRow dr = dt2.Select("Id = " + row.Cells[1].Text)[0];
dt1.ImportRow(dr);
dt2.Rows.Remove(dr);
ViewState["dt1"] = dt1;
ViewState["dt2"] = dt2;
GridView1.DataSource = dt1;
GridView1.DataBind();
GridView2.DataSource = dt2;
GridView2.DataBind();
}
}
}