1st method
In this i've created a Default.aspx page with two textbox and one button , button click will post back to Default2.aspx and there we will retrieve and show values of both textboxes
Html source of Default.aspx page is like
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
First Name:
<asp:TextBox ID="txtFirstName" runat="server">
</asp:TextBox><br /><br />
Last Name:
<asp:TextBox ID="txtLastName" runat="server">
</asp:TextBox><br /><br /><br />
<asp:Button ID="btnSubmit" runat="server"
OnClick="btnSubmit_Click"
PostBackUrl="~/Default2.aspx"
Text="Submit to Second Page" /><br />
</div>
</form>
</body>
</html>Don't forget to set PostBackUrl Property of Button
PostBackUrl="~/Default2.aspx"
Now to retrieve values of textBoxes on Default2.aspx page, write below mentioned code in Page_Load event of second page (Default2.aspx)
C# code behind
protected void Page_Load(object sender, EventArgs e)
{
//Check whether previous page is cross page post back or not
if (PreviousPage != null && PreviousPage.IsCrossPagePostBack)
{
TextBox txtPbFirstName = (TextBox)PreviousPage.FindControl("txtFirstName");
TextBox txtPbLastName = (TextBox)PreviousPage.FindControl("txtLastName");
Label1.Text = "Welcome " + txtPbFirstName.Text + " " + txtPbLastName.Text;
}
else
{
Response.Redirect("Default.aspx");
}
}
VB.NET Code behind
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
'Check whether previous page is cross page post back or not
If PreviousPage IsNot Nothing AndAlso PreviousPage.IsCrossPagePostBack Then
Dim txtPbFirstName As TextBox = DirectCast(PreviousPage.FindControl("txtFirstName"), TextBox)
Dim txtPbLastName As TextBox = DirectCast(PreviousPage.FindControl("txtLastName"), TextBox)
Label1.Text = ("Welcome " & txtPbFirstName.Text & " ") + txtPbLastName.Text
Else
Response.Redirect("Default.aspx")
End If
End Sub
If you are using masterpages then you need to write code to FindControl as mentioned below
ContentPlaceHolder exampleHolder =(ContentPlaceHolder)Page.PreviousPage.Form.FindControl ("Content1"));
TextBox txtExample = exampleHolder.FindControl("txtFirstName");
2nd Method
Using Property to expose and Consume values of TextBox
If we are using this method then we don't need to use FindControl method at all
For this we need to create property in code behind of the page to be cross page post back (Default.aspx)
Html of the page needs no changes ,
C# code behind for Default.aspx
public TextBox pbTxtFirstName
{
get
{
return txtFirstName;
}
}
public TextBox pbTxtLastName
{
get
{
return txtLastName;
}
}
VB.NET
Public ReadOnly Property pbTxtFirstName() As TextBox
Get
Return txtFirstName
End Get
End Property
Public ReadOnly Property pbTxtLastName() As TextBox
Get
Return txtLastName
End Get
End Property
Now to retrieve or consume exposed properties on Second page we need to add below mentioned page directive in html source of Default2.aspx page(usually at the top of page)
<%@ PreviousPageType VirtualPath="~/Default.aspx" %>
Now write this code in page_Load event of second page to retrieve values of controls
C# code
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null && PreviousPage.IsCrossPagePostBack)
{
Label1.Text = "Welcome " + PreviousPage.pbTxtFirstName.Text + " " + PreviousPage.pbTxtLastName.Text;
}
else
{
Response.Redirect("Default.aspx");
}
}
VB Code
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
If PreviousPage IsNot Nothing AndAlso PreviousPage.IsCrossPagePostBack Then
Label1.Text = ("Welcome " & PreviousPage.pbTxtFirstName.Text & " ") + PreviousPage.pbTxtLastName.Text
Else
Response.Redirect("Default.aspx")
End If
End Sub
Hope this helps
Related Posts:
1.Merge Merging GridView Header Columns or multiple Headers ASP.NET C# VB.NET
2.Detect Browser refresh in ASP .NET C# to avoid events getting fired again
3.Search Records In GridView And Highlight Results Using AJAX ASP.NET
4.ASP.NET Submit form on Enter Key Default submit Button
5.ASP.NET Register dlls assembly custom controls and user controls ascx
6.ASP.NET Search records in GridView footer and highlight results using Ajax
7.User validation across pages using session after login in ASP.NET using C sharp