Ankur Arya
Ankur Arya

Reputation: 4723

Need to open output in new windows in gridview

Hi Have code on button click below . I need to open output in new window in a gridview.below is the code of button click.

protected void Button3_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.AddRange(new DataColumn[21] { new DataColumn("Siebel_SR#"), new DataColumn("Siebel_SR#1"), new DataColumn("Tran_Qty"), new DataColumn("Ord_Sou_Ref"), new DataColumn("Tran_Reference"), new DataColumn("[Ord Number]"), new DataColumn("[Ord Number1]"), new DataColumn("Transaction_Type_Id"), new DataColumn("Trans_Date"), new DataColumn("[Trans Sub]"), new DataColumn("Business"), new DataColumn("New_DFF_SR#"), new DataColumn("Reason_Name"), new DataColumn("Line_Type"), new DataColumn("Org"), new DataColumn("Sub_Inv"), new DataColumn("Part_Num"), new DataColumn("[Last Updated By]"), new DataColumn("[Created By]"), new DataColumn("Employee"), new DataColumn("DateWorked") }); 
            foreach (GridViewRow row in GridView1.Rows)
            {
                if (row.RowType == DataControlRowType.DataRow) 
                {
                    CheckBox chk = (row.Cells[0].FindControl("chkSelect") as CheckBox);
                    if (chk.Checked)
                    {

                        string Siebel_SR = row.Cells[1].Text;
                        string Siebel_SR1 = row.Cells[2].Text;
                        string Tran_Qty = row.Cells[3].Text;
                        string Ord_Sou_Ref= row.Cells[4].Text;
                        string Tran_Reference = row.Cells[5].Text;
                        string Ord_Number = row.Cells[6].Text;
                        string Ord_Number1 = row.Cells[7].Text;
                        string Transaction_Type_Id = row.Cells[8].Text;
                        string Trans_Date = row.Cells[9].Text;
                        string Trans_Sub = row.Cells[10].Text;
                        string Business = row.Cells[11].Text;
                        string New_DFF_SR = row.Cells[12].Text;
                        string Reason_Name = row.Cells[13].Text;
                        string Line_Type = row.Cells[14].Text;
                        string Org = row.Cells[15].Text;
                        string Sub_Inv = row.Cells[16].Text;
                        string Part_Num = row.Cells[17].Text;
                        string Last_Updated_By = row.Cells[18].Text;
                        string Created_By = row.Cells[19].Text;
                        string Employee = row.Cells[20].Text;
                        string DateWorked = row.Cells[21].Text;

                        dt.Rows.Add(Siebel_SR , Siebel_SR1 , Tran_Qty ,Ord_Sou_Ref , Tran_Reference , Ord_Number , Ord_Number1 , Transaction_Type_Id , Trans_Date , Trans_Sub , Business , New_DFF_SR ,Reason_Name ,Line_Type , Org , Sub_Inv , Part_Num , Last_Updated_By , Created_By , Employee , DateWorked  );
                    }
                }
            }
            GridView3.DataSource = dt;
            GridView3.DataBind();
        }

Upvotes: 0

Views: 178

Answers (1)

suff trek
suff trek

Reputation: 39777

If I understood you correctly - you need to display new grid (GridView3) in the new window. If that's so - create a new ASPX page, say "Output.aspx" and add GridView3 there instead of your current page.

Then in your current code instead last 2 lines that bind the grid - store newly created datatable in session:

Session["GridView3Data"] = dt;

And open your new page:

ScriptManager.RegisterStartupScript(this, this.GetType(), "open", "winodw.open('Output.aspx');", true);

And in the pageload event of Output.aspx.cs read that session variable and bind it to the grd:

DataTable dt = (DataTable)Session["GridView3Data"];
GridView3.DataSource = dt;
GridView3.DataBind();

Upvotes: 1

Related Questions