Четири типа навигације:
- навигација на страни клијента (енгл. Client-side Navigation),
- објављивање међу страницама (енгл. Cross-page Posting),
- преусмеравање прегледача на страни клијента (енгл. Client-Side Browser Redirect) и
- трансфер на страни сервера (енгл. Server-side Transfer).
Client-side Navigation
Нека веб апликација има две форме, WebForm1.aspx
и WebForm2.aspx
. Помоћу серверске контроле HyperLink обезбеди линкове на формама.
WebForm1.aspx
markup:
<h1>Forma 1</h1>
<br />
<asp:HyperLink ID="hlForm2"
NavigateUrl="~/WebForm2.aspx"
runat="server">Idi na Formu 2</asp:HyperLink>
WebForm2.aspx
markup:
<h1>Forma 2</h1>
<br />
<asp:HyperLink ID="hlForm1"
NavigateUrl="~/WebForm1.aspx"
runat="server">Idi na Formu 1</asp:HyperLink>
Cross-page Posting
Нека веб апликација има две форме, WebForm1.aspx
и WebForm2.aspx
. Помоћу серверске контроле Button обезбеди линк са прве на другу форму. Нека прва форма садржи и TextBox, а друга Label. Преласком са прве на другу форму, упиши текст из TextBox-а са прве у Label на другој форми.
WebForm1.aspx
markup:
<h1>Forma 1</h1>
<br />
<asp:TextBox ID="txtPodaci"
runat="server"></asp:TextBox>
<br />
<asp:Button ID ="btnOtvori"
Text="Otvori Formu 2"
PostBackUrl="~/WebForm2.aspx"
runat="server" />
WebForm2.aspx
markup:
<h1>Forma 2</h1>
<br />
<asp:Label ID="lblPoruka"
runat="server"></asp:Label>
WebForm2.aspx.cs
code behind:
protected void Page_Load(object sender, EventArgs e)
{
if (Page.PreviousPage == null)
lblPoruka.Text = "Nema podataka sa prethodne strane!";
else
lblPoruka.Text = Server.HtmlEncode(((TextBox)PreviousPage.FindControl("txtPodaci")).Text);
}
Послати “јако типизирани” подаци
Исти текст задатка – нека веб апликација има две форме, WebForm1.aspx
и WebForm2.aspx
. Помоћу серверске контроле Button обезбеди линк са прве на другу форму. Нека прва форма садржи и TextBox, а друга Label. Преласком са прве на другу форму, упиши текст из TextBox-а са прве у Label на другој форми.
WebForm1.aspx
markup:
<h1>Forma 1</h1>
<asp:TextBox ID="txtPodaci"
runat="server"></asp:TextBox>
<br />
<asp:Button ID ="btnOtvori"
Text="Otvori Formu 2"
PostBackUrl="~/WebForm2.aspx"
runat="server" />
WebForm1.aspx.cs
code behind:
public string PodaciForme1
{
get { return txtPodaci.Text; }
}
WebForm2.aspx
markup:
<%@ PreviousPageType VirtualPath="~/WebForm1.aspx" %>
<h1>Forma 2</h1>
<br />
<asp:Label ID="lblPoruka"
runat="server"></asp:Label>
WebForm2.aspx.cs
code behind:
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage == null)
lblPoruka.Text = "Nema podataka sa prethodne strane!";
else
lblPoruka.Text = PreviousPage.PodaciForme1;
}
Client-Side Browser Redirect
Нека веб апликација има две форме, WebForm1.aspx
и WebForm2.aspx
. Помоћу серверске контроле Button обезбеди линк са прве на другу форму.
WebForm1.aspx
markup:
<h1>Forma 1</h1>
<br />
<asp:Button ID ="btnOtvori"
Text="Otvori Formu 2"
OnClick="btnOtvori_Click"
runat="server" />
WebForm1.aspx.cs
code behind:
protected void btnOtvori_Click(object sender, EventArgs e)
{
Response.Redirect("~/WebForm2.aspx");
}
WebForm2.aspx
markup:
<h1>Forma 2</h1>
Server-Side Transfer
Нека веб апликација има две форме, WebForm1.aspx
и WebForm2.aspx
. Помоћу серверске контроле Button обезбеди линк са прве на другу форму.
WebForm1.aspx
markup:
<h1>Forma 1</h1>
<br />
<asp:Button ID ="btnOtvori"
Text="Otvori Formu 2"
OnClick="btnOtvori_Click"
runat="server" />
WebForm1.aspx.cs
code behind:
protected void btnOtvori_Click(object sender, EventArgs e)
{
Server.Transfer("~/WebForm2.aspx", false);
}
WebForm2.aspx
markup:
<h1>Forma 2</h1>