Some
times we navigate to multiple pages in-order to gather particular information.
We can use Wizard and FormView controls in that scenarios.
Choosing
a method for navigation:
Client
Side Markup to request new page: Using client side button link.
Cross-Page
posting:
Control configured to postback to a different page.
Issue
Client-side browser redirect: Server sends a message to browser to
request a different page.
Issue
Server-side transfer:
Transfers control to a different page.
1.
Providing Client Side Markup to Request new page:
Use
<asp:HyperLink> control and provide NavigationUrl. It renders to
<a> tag.
User
<input type=”button” onclick=”return MoveToNextPage()”> provide onclick
javascript event.
<JavaScript>
function MoveToNextPage() { document.location = “AddUser.apsx”; }
</JavaScript>
2.
Cross-Page Posting:
Button
can be give “PostBackUrl” to postback to.
To
get control from previous page call PreviousPage.FindControl(“txtFirstName”)
as it’s a naming container.
Accessing
Strongly Typed Data:
Button
can be give “PostBackUrl” to postback to.
In
source page add a pubic property to return data.
public
string UserName { get { return txtFirstName.Text; } }
In target page tell him the Page type Ã
<%@PreviousPageType
VirtualPath = “~/AddUser.aspx” %>
In
target page check “PreviousPage” if not null Cross-Page posting occurs.
Then
to get data call PreviousPage.UserName.
3.
Issuing Client side Browser Redirect:
Call
Response.Redirect which sends 302 code with a url to client browser request
this URL Page.
Prior
to executing Reponse.Redirect
Set
Response.BufferOutput = true;
This
causes Browser not to send any data to client prior to executing Redirect.
If
response headers are sent and than redirect command is issued an HTTP exception
will raise.
PreviousPage
will not be accessible.
4.
Issuing Server-Side Transfer:
HttpUtility.Transfer is used. Page
contains a Sever property that gives you access to Transfer as well (Server.Transfer).
PreviousPage property is
available.
Server.Transfer(“AddUser.aspx”,
false /*preserveForm*/);
Pass
true value as preserveForm parameter to preserver QueryString and form data.
Using
the SiteMap Web Server control:
Used
to define and display Site’s structure.
Following
controls can display site map data.
Menu,
TreeView and SiteMapPath.
SiteMapPath: Displays
CurrentNode and the path to current Node like a breadcrumb control. HOME >
Visual Studio > Support
These
controls generate markups and server side events as well,
TreeView
and
Menu require SiteMapDataSource control.
By
Default SiteMapDataSource picks its data from Web.sitemap; but SiteMapPath
control gets data directly from Web.Sitemap.
Sample
Web.Sitemap.
Using
SiteMap class: