Doubt Man
Doubt Man

Reputation: 13

How to fill selected value to a grid from another grid?

I have a Grid1 with check box, Now I want to store Grid1 selected values into another grid grid2. How can I do this? My Grid1 is

<asp:GridView ID="GridView1" runat="server" HorizontalAlign="Center" DataKeyNames="ShiftID" 
Width="177px" onrowdatabound="GridView1_RowDataBound1">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="ChbGrid" runat="server"                                                        oncheckedchanged="ChbGrid_CheckedChanged" />
</ItemTemplate>
<HeaderTemplate>
<asp:CheckBox ID="ChbGridHead" runat="server" AutoPostBack="True" 
Font-Bold="True" oncheckedchanged="ChbGridHead_CheckedChanged" />
</HeaderTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

Gridview2 is

 <asp:GridView ID="GridView2" runat="server" BackColor="#DEBA84" 
 BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" 
 CellSpacing="2">                                
 </asp:GridView>

I have some function

 protected void ChbGrid_CheckedChanged(object sender, EventArgs e)
    {
        CheckBox checkstatus = (CheckBox)sender;
        GridViewRow row = (GridViewRow)checkstatus.NamingContainer;
    }
    protected void ChbGridHead_CheckedChanged(object sender, EventArgs e)
    {
        CheckBox chkheader = (CheckBox)GridView1.HeaderRow.FindControl("ChbGridHead");
        foreach (GridViewRow row in GridView1.Rows)
        {
            CheckBox chkrow = (CheckBox)row.FindControl("ChbGrid");
            if (chkheader.Checked == true)
            {
                chkrow.Checked = true;
                {

                }
            }
            else
            {
                chkrow.Checked = false;
            }
        }

    }

   protected void GridView1_RowDataBound1(object sender, GridViewRowEventArgs e)
    {
        e.Row.Cells[1].Visible = false;
    }

What changes I should made to get my expected output. My GridView1 conatins ShiftID,ShiftName,ShiftTime and Date. How to generate query to dispaly selected Gridview1 item in Griview2

Upvotes: 0

Views: 1197

Answers (1)

Pradnya Bolli
Pradnya Bolli

Reputation: 1943

Write this in Source file

 <asp:Button ID="btnGetSelected" runat="server" Text="Get selected records" OnClick="GetSelectedRecords" />

On the click of the Button the following event handler is executed. A loop is executed over the GridView Data Rows and CheckBox is referenced.

protected void GetSelectedRecords(object sender, EventArgs e)
{
    DataTable dt = new DataTable();
    dt.Columns.AddRange(new DataColumn[2] { new DataColumn("Name"), new DataColumn("Country") });
    foreach (GridViewRow row in GridView1.Rows)
    {
        if (row.RowType == DataControlRowType.DataRow)
        {
            CheckBox chkRow = (row.Cells[0].FindControl("chkRow") as CheckBox);
            if (chkRow.Checked)
            {
                string name = row.Cells[1].Text;
                string country = (row.Cells[2].FindControl("lblCountry") as Label).Text;
                dt.Rows.Add(name, country);
            }
        }
    }
    gvSelected.DataSource = dt;
    gvSelected.DataBind();
}

For more information us this links

GridView with CheckBox: Get Selected Rows in ASP.Net

Transfer Selected Rows from one GridView to Another in Asp.net

Upvotes: 2

Related Questions