1- Querystrings:
Using Query string variables, you can pass data between webforms. below is an example
Using Query string variables, you can pass data between webforms. below is an example
Ex:
Suppose you want to pass the TextBox1.Text variable from WebForm1 to WebForm2
on button click event.
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("WebForm2.aspx?id=" + TextBox1.Text);
}
To
Read the value of "id" in WebForm2, you should use the below code
string
queryStringID = Request.QueryString["id"];
Now
queryStringID will hold the data from the querystring.
2- Cookies:
AS you might already know, cookies are small text
files stored in the client machine. Cookies can only store up to approximately
4 kbs. Once the cookie is stored into the client machine, each request from the
client to your application, the web browser will look for the cookie and
send it
via the Request Object.
Ex: To store a value of TextBox1.Text inside the cookie use the below
code
protected void Button1_Click(object sender, EventArgs e)
{
HttpCookie cookie = new HttpCookie("UserName");
cookie.Value = TextBox1.Text;
cookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(cookie);
Response.Redirect("WebForm2.aspx");
}
Now in webform2 page_load event, you should write the below code to get
the value
if(Request.Cookies["UserName"] != null)
Response.Write(Request.Cookies["UserName"].Value);
3- Session
Variables: By default, session variables are stored in the webserver's memory.
Session variables are unique per each user.
Ex: To
store a value inside a session variable use the below code
protected void Button1_Click(object sender, EventArgs e)
{
Session["UserName"] = TextBox1.Text;
Response.Redirect("WebForm2.aspx");
}
To retrieve the value from WebForm2 use
the below code
Response.Write(Session["UserName"]);
4- Cross Page
Posting (ASP.NET 2.0):
Cross page posting was introduced in ASP.NET 2.0. I
already have a blog post about it.
Ex: The same example is taken from my previous blog post Set the Button1 PostBackUrl property to WebForm2.aspx Now in WebForm2.aspx, Write the below code to get the value of
textbox1
TextBox txtFirstPage =
(TextBox)(PreviousPage.FindControl("TextBox1"));
Response.Write(String.Format("You wrote {0} in
Page1",txtFirstPage.Text));
5- Submit Form: You
can submit the form in Webform1.aspx to webform2.aspx. In that case, you can
retrieve all the WebForm1's form element from
webform2. What we will do in the below example is to add another form (
not a server side one) which will have two HTML controls; the first is an submit control the second is a hidden field which will have the value of
TextBox1 web server control to be posted to webform2
Ex: now the HTML code of webform1 will look like below
<form
id="Form1" method="post" runat="server">
<asp:TextBox
ID="TextBox1" runat="server"></asp:TextBox>
</form>
<form
name="SubmittedForm" action="WebForm2.aspx"
method="post">
<input
id="Submit1" type="submit" value="submit"
onclick="CopyTextToHiddenField()" />
<input
name="Hidden1" type="hidden" />
</form>
Of course you realized the we handled the onclick event of the submit
button which will call a javascript function to copy the value of TextBox1
into the
hidden field (Hidden1) in order to post it to webform2. Also you so in the
second form tag the action attribute in which we specified to which page
the second form (SubmittedForm) will be posted.
Add the below javascript code inside the <head> tag of WebForm1
<script language="javascript">
function CopyTextToHiddenField()
{
var
textbox1Value = document.getElementById("<%=TextBox1.ClientID%>").value;
document.forms[1].document.getElementById("Hidden1").value =
textbox1Value;
}
</script>
Now you retrieve the value of "Hidden1" hidden field in
webform 2 using the below code