Thursday 26 December 2013

Move Selected Gridview Rows to Another Gridview in Asp.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>Move 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>


========================================================

C# Code

protected void Page_Load(object sender, EventArgs e)

if (!IsPostBack)
{

BindGridview();
BindSecondGrid();
}

}
protected void BindGridview()
{
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;   
dtrow["UserName"] = "ChiragPatel";
dtrow[
"Education"] = "M.sc IT";
dtrow[
"Location"] = "Kaalol";
dt.Rows.Add(dtrow);
dtrow = dt.NewRow();

dtrow["UserId"] = 2;
dtrow["UserName"] = "ChinkiPandviya";
dtrow[
"Education"] = "BCA";
dtrow[
"Location"] = "Vadodara";
dt.Rows.Add(dtrow);
dtrow = dt.NewRow();

dtrow["UserId"] = 3;
dtrow["UserName"] = "KinZy";
dtrow[
"Education"] = "BCA";
dtrow[
"Location"] = "Vadodara";

dt.Rows.Add(dtrow);
gvDetails.DataSource = dt;
gvDetails.DataBind();
}
protected void chkSelect_CheckChanged(object sender, EventArgs e)
{
GetSelectedRows();
BindSecondGrid();
}
protected void BindSecondGrid()
{
DataTable dt = (DataTable)ViewState["GetRecords"];
gvTranferRows.DataSource = dt;
gvTranferRows.DataBind();
}
private void GetSelectedRows()
{
DataTable dt;
if (ViewState["GetRecords"] != null)
dt = (DataTable)ViewState[
"GetRecords"];
else
dt = CreateTable();
for (int i = 0; i < gvDetails.Rows.Count; i++)
{
CheckBox chk = (CheckBox)gvDetails.Rows[i].Cells[0].FindControl("chkSelect");
if (chk.Checked)
{
dt = AddGridRow(gvDetails.Rows[i], dt);
}
else
{
dt = RemoveRow(gvDetails.Rows[i], dt);
}
}
ViewState["GetRecords"] = dt;
}
private DataTable CreateTable()
{
DataTable dt = new DataTable();
dt.Columns.Add("UserId");
dt.Columns.Add("UserName");
dt.Columns.Add("Education");
dt.Columns.Add("Location");
dt.AcceptChanges();
return dt;
}
private DataTable AddGridRow(GridViewRow gvRow, DataTable dt)
{
DataRow[] dr = dt.Select("UserId = '" + gvRow.Cells[1].Text + "'");
if (dr.Length <= 0)
{
dt.Rows.Add();
int rowscount = 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();
}
return dt;
}
private DataTable RemoveRow(GridViewRow gvRow, DataTable dt)
{
DataRow[] dr = dt.Select("UserId = '" + gvRow.Cells[1].Text + "'");
if (dr.Length > 0)
{
dt.Rows.Remove(dr[0]);
dt.AcceptChanges();
}
return dt;
}

====================================================== 

0 comments:

Post a Comment