Reza Paidar
Reza Paidar

Reputation: 883

open new tab using gridview CommandField

I Have a Gridview as described below :

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="TrackingNumber" OnSelectedIndexChanged="GridView1_SelectedIndexChanged1"
DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="TrackingNumber" HeaderText="TID" ReadOnly="True" SortExpression="TrackingNumber" /> 
<asp:BoundField DataField="NationalCode" HeaderText="AID" SortExpression="NationalCode" />
<asp:BoundField DataField="ApplicantFName" HeaderText="AFName" SortExpression="ApplicantFName" />
<asp:BoundField DataField="ApplicantSex" HeaderText="ASex" SortExpression="ApplicantSex"/>
<asp:BoundField DataField="dateOfRegister" dataformatstring="{0:yyyy/MM/dd}" HeaderText="RegisterDate" SortExpression="dateOfRegister"/>
<asp:CommandField ButtonType="Image" SelectImageUrl="~/Admin/images/select.png"  ShowSelectButton="True" />
</Columns>
</asp:GridView>

and on behind code I wrote this code:

protected void GridView1_SelectedIndexChanged1(object sender, EventArgs e)
{
  Session["TID"] = GridView1.SelectedRow.Cells[0].Text;
  Response.Redirect("../Recruitment/InitPrint.aspx");
}

When user click on command field button, page redirect to InitPrint.aspx and my code doing well. but I want InitPrint.aspx open up in new tab page that Session["TID"] will be read there.
Thanks for your consideration.

Upvotes: 1

Views: 2008

Answers (3)

Usman Khalid
Usman Khalid

Reputation: 3110

There is no direct way, you have to use something like that:

protected void GridView1_SelectedIndexChanged1(object sender, EventArgs e)
{
    Session["TID"] = GridView1.SelectedRow.Cells[0].Text;
    ScriptManager.RegisterStartupScript(Page, typeof(Page), "OpenWindow", "window.open("'../Recruitment/InitPrint.aspx','_blank'");",true);
}

Upvotes: 1

Vipan
Vipan

Reputation: 177

Kindly check the below code. Hope it will help you

protected void GridView1_SelectedIndexChanged1(object sender, EventArgs e)
{ 
  Session["TID"] = GridView1.SelectedRow.Cells[0].Text;
  ScriptManager.RegisterStartupScript(Page, Page.GetType(), "popup", "window.open('page.aspx','_blank')", true);
}

Upvotes: 2

Rojalin Sahoo
Rojalin Sahoo

Reputation: 1025

you can set the target to blank.

Response.Write("<script>window.open('../Recruitment/InitPrint.aspx','_blank');</script>");

and access session value in that page.

May following link will help you more ASP.Net-Response.Redirect-or-Server.Transfer-Open-new-window

Response.Redirect with target from gridview control event

Upvotes: 0

Related Questions