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
Using this technique I will store the data in session
variable on the client machine and on the next page will grab it.
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.
No comments:
Post a Comment