5 Ways to send data between ASP.NET Pages
How many ways do you know to send the data between
ASP.NET Pages? In this post I’m going to list 5 different ways. First 2-3 ways
are very well-known and last 2-3 ways are not much popular. You will find here mostly
inline methods to receive the data on different pages. You can download the
complete code here.
So, let’s start with the very well-known one.
Using
Session State or Application Variable
Using this technique I will store the data in session
variable on the client machine and on the next page will grab it. Using Application Variable instead of Session Variable is recommend by experts.
ASPX Page:
<asp:TextBox ID="txtData" runat="server"></asp:TextBox>
<br /><br />
<asp:Button ID="btnSessionState" runat="server" Text="Session
State" OnClick="btnSessionState_Click" />
Code-Behind:
protected void btnSessionState_Click(object sender, EventArgs e)
{
Session["Data"] = txtData.Text;
Response.Redirect("SessionState.aspx");
}
Receiver ASPX Page:
<div>
<h1>Session State</h1>
Data is: <%=Session["Data"] %>
And you all set, run it
test it.
Using
Query String
Using this technique I will add my data with URL and on
the next page will grab it.
ASPX Page:
<asp:TextBox ID="txtData" runat="server"></asp:TextBox>
<br /><br />
<asp:Button ID="btnQueryString" runat="server" Text="Query
String" OnClick="btnQueryString_Click" />
Code-Behind:
protected void btnQueryString_Click(object sender, EventArgs e)
{
Response.Redirect("QueryString.aspx?Data=" +
Server.UrlEncode(txtData.Text));
}
Receiver ASPX Page:
<h1>Query String</h1>
Data is: <%=Server.UrlDecode(Request.QueryString["Data"]) %>
And you all set, run it
test it.
Using
HttpPost
Using this technique I will call a post back url and
the on next page using Request.From I will grab it.
ASPX Page:
<asp:TextBox ID="txtData" runat="server"></asp:TextBox>
<br /><br />
<asp:Button ID="btnHttpPost" runat="server" Text="HTTPPost" PostBackUrl="~/HttpPost.aspx" />
Note: There is no any code-behind method call instead
of a postbackurl in button attribute.
Receiver ASPX Page:
<h1>HttpPost</h1>
Data is: <%=Request.Form["txtData"] %>
And you all set, run it test it.
Using
Public Properties
Using this technique I will send the using a public
method and on the next page will grab it using PreviousPage.MethodName.
ASPX Page:
<asp:TextBox ID="txtData" runat="server"></asp:TextBox>
<br /><br />
<asp:Button ID="btnPublicProperties" runat="server" Text="Public
Properties" OnClick="btnPublicProperties_Click" />
Code-Behind:
protected void btnPublicProperties_Click(object sender, EventArgs e)
{
Server.Transfer("PublicProperties.aspx");
}
public string PublicData
{
get
{
return txtData.Text;
}
}
Receiver ASPX Page:
<h1>Public Properties</h1>
Data is: <%=PreviousPage.PublicData %>
And you all set, run it test it.
Using
Controls
Using this technique I will just redirect the user on
next page and on the next page will use PreviousPage.FindControl to grab the
data.
ASPX Page:
<asp:TextBox ID="txtData" runat="server"></asp:TextBox>
<br /><br />
<asp:Button ID="btnControl" runat="server" Text="Control" OnClick="btnControl_Click" />
Code-Behind:
protected void btnControl_Click(object sender, EventArgs e)
{
Server.Transfer("Control.aspx");
}
Receiver ASPX Page:
<h1>Control</h1>
Data is: <asp:Label ID="Label1" runat="server" Text="Label" />
Receiver Code-Behind Page:
protected void Page_Load(object sender, EventArgs e)
{
var textbox = PreviousPage.FindControl("txtData") as TextBox;
if (textbox != null)
{
Label1.Text = textbox.Text;
}
}
And you all set, run it test it.
Very useful article :)
ReplyDeleteyup
DeleteAbhimannyu,
ReplyDeleteA minor typo...Using HpptPost Should read Using HttpPost.. :)
opps! fixed it now. thanks.
DeleteGood work thanks
ReplyDeletedear sir,
ReplyDeleteu truly r an angel to me for teaching so many things.
thanks a lot n keep helping and encouraging :)
Thank You ....,
ReplyDeleteGood, keep on
ReplyDeleteexcellent article
ReplyDeletethankx
ReplyDeletesuper explain nice thank you so much
ReplyDeletenice bro, tq
ReplyDeletewell explained. Good
ReplyDeletethanks
ReplyDeleteThanks
ReplyDelete