Hello Gurus,
I have a Gridview,when i select item from 1st grid it should load in the 2nd grid, here i have done for selecting from checkbox,but when i uncheck it is loading properly, please help me this.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Controls_Default" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<script type="text/javascript">
// Select/Deselect checkboxes based on header checkbox
function SelectheaderCheckboxes(headerchk) {
debugger
var gvcheck = document.getElementById('GridVwRowColorchange');
var i;
//Condition to check header checkbox selected or not if that is true checked all checkboxes
if (headerchk.checked) {
for (i = 0; i < gvcheck.rows.length; i++) {
var inputs = gvcheck.rows[i].getElementsByTagName('input');
inputs[0].checked = true;
}
}
//if condition fails uncheck all checkboxes in gridview
else {
for (i = 0; i < gvcheck.rows.length; i++) {
var inputs = gvcheck.rows[i].getElementsByTagName('input');
inputs[0].checked = false;
}
}
}
//function to check header checkbox based on child checkboxes condition
function Selectchildcheckboxes(header) {
var ck = header;
var count = 0;
var gvcheck = document.getElementById('GridVwRowColorchange');
var headerchk = document.getElementById(header);
var rowcount = gvcheck.rows.length;
//By using this for loop we will count how many checkboxes has checked
for (i = 1; i < gvcheck.rows.length; i++) {
var inputs = gvcheck.rows[i].getElementsByTagName('input');
if (inputs[0].checked) {
count++;
}
}
//Condition to check all the checkboxes selected or not
if (count == rowcount - 1) {
headerchk.checked = true;
}
else {
headerchk.checked = false;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="Sc1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="up1" runat="server">
<ContentTemplate>
<asp:GridView ID="GridVwRowColorchange" runat="server" AutoGenerateColumns="False"
Font-Names="Verdana" PageSize="5" Width="75%" BorderColor="#CCCCCC" BorderStyle="Solid"
BorderWidth="1px" OnRowDataBound="GridVwRowColorchange_RowDataBound">
<AlternatingRowStyle BackColor="#BFE4FF" />
<PagerStyle BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth="1px" />
<HeaderStyle Height="30px" BackColor="#6DC2FF" Font-Size="15px" BorderColor="#CCCCCC"
BorderStyle="Solid" BorderWidth="1px" />
<RowStyle Height="20px" Font-Size="13px" BorderColor="#CCCCCC" BorderStyle="Solid"
BorderWidth="1px" />
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="chkheader" runat="server" onclick="javascript:SelectheaderCheckboxes(this)" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkchild" runat="server" AutoPostBack="true" OnCheckedChanged="chkchild_OnCheckedChanged"/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Employee ID">
<ItemTemplate>
<asp:Label ID="Emp_id" runat="server" Text='<%#Eval("Emp_id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<%-- <asp:BoundField DataField="Emp_id" HeaderText="Employee ID" />--%>
<asp:BoundField DataField="Emp_Name" HeaderText="Employee Name" />
<asp:BoundField DataField="Emp_job" HeaderText="Job title" />
<asp:BoundField DataField="Emp_Dep" HeaderText="Department" />
</Columns>
</asp:GridView>
<asp:GridView ID="gv1" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblEmpid" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Label ID="lbl1" runat="server"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
Default.aspx.cs
-----------------------
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
public partial class Controls_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadData();
}
}
private void LoadData()
{
DataTable dt = new DataTable();
dt.Columns.Add("Emp_Name");
dt.Columns.Add("Emp_id");
dt.Columns.Add("Emp_job");
dt.Columns.Add("Emp_Dep");
DataRow rw1 = dt.NewRow();
rw1["Emp_Name"] = "Narain Sidharth";
rw1["Emp_id"] = "2020";
rw1["Emp_job"] = "SOftware Engineer";
rw1["Emp_Dep"] = "IT";
dt.Rows.Add(rw1);
DataRow rw2 = dt.NewRow();
rw2["Emp_Name"] = "Prakalathan";
rw2["Emp_id"] = "1978";
rw2["Emp_job"] = "System Engineer";
rw2["Emp_Dep"] = "IT";
dt.Rows.Add(rw2);
DataRow rw3 = dt.NewRow();
rw3["Emp_Name"] = "Mathu kumar";
rw3["Emp_id"] = "2700";
rw3["Emp_job"] = "Support Enginner";
rw3["Emp_Dep"] = "IT";
dt.Rows.Add(rw3);
DataRow rw4 = dt.NewRow();
rw4["Emp_Name"] = "Arvind";
rw4["Emp_id"] = "4678";
rw4["Emp_job"] = "Sr Software Engineer";
rw4["Emp_Dep"] = "IT";
dt.Rows.Add(rw4);
DataRow rw5 = dt.NewRow();
rw5["Emp_Name"] = "Raja ram";
rw5["Emp_id"] = "2300";
rw5["Emp_job"] = "Test Engineer";
rw5["Emp_Dep"] = "IT";
dt.Rows.Add(rw5);
GridVwRowColorchange.DataSource = dt;
GridVwRowColorchange.DataBind();
}
protected void GridVwRowColorchange_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
CheckBox headerchk = (CheckBox)GridVwRowColorchange.HeaderRow.FindControl("chkheader");
CheckBox childchk = (CheckBox)e.Row.FindControl("chkchild");
childchk.Attributes.Add("onclick", "javascript:Selectchildcheckboxes('" + headerchk.ClientID + "')");
// mouse over color change
e.Row.Attributes.Add("onmouseover", "self.MouseOverOldColor=this.style.backgroundColor;this.style.backgroundColor='#C0C0C0'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=self.MouseOverOldColor");
}
}
protected void chkchild_OnCheckedChanged(object sender, EventArgs e)
{
int selRowIndex = ((GridViewRow)(((CheckBox)sender).Parent.Parent)).RowIndex;
CheckBox cb = (CheckBox)GridVwRowColorchange.Rows[selRowIndex].FindControl("chkchild");
if (cb.Checked == true)
{
foreach (GridViewRow row in GridVwRowColorchange.Rows)
{
if (selRowIndex == row.RowIndex)
{
if (cb.Checked)
{
Label Emp_id = (Label)GridVwRowColorchange.Rows[selRowIndex].FindControl("Emp_id");
// Find other checkbox using FindControl and check the
lbl1.Text += "," + Emp_id.Text;
}
}
BindGV1();
}
}
else
{
lbl1.Text = string.Empty;
foreach (GridViewRow row in GridVwRowColorchange.Rows)
{
//if (selRowIndex == row.RowIndex)
{
if (cb.Checked)
{
Label Emp_id = (Label)GridVwRowColorchange.Rows[selRowIndex].FindControl("Emp_id");
lbl1.Text += "," + Emp_id.Text;
}
}
BindGV1();
}
}
}
private void BindGV1()
{
string[] str = lbl1.Text.Split(',');
List<string> s1 = new List<string>();
foreach (string s in str)
{
s1.Add(s);
}
gv1.DataSource = s1;
gv1.DataBind();
}
}
Thanks in Advance