HTMLForm.SubmitDisabledControls = true; will
disable the controls while the page is being submitted.
One
Server Side Visible HTMLForm is
supported in a Web Page. Other Form <form> tags should client side only
with action=”search.aspx” and method=”post” attributes. And for the
fact one will have to use old fashioned code to retrieve values:
string
textToSearch = Request.Form["Keyword"].ToString();
In
CrossPagePostback Specify the PostbackURL for <asp:Button> in which
following script will be written to postback to a different page:
In this case a new
hidden field will be generated __PREVIOUSPAGE to provide viewstate information of
previous page.
CrossPagePosting is a two way process in which Source page first postsback to itself
then to the Target page specified in PostabkURL.
Detecting CrossPagePostback:
if (PreviousPage ==
null)
{
if
(!PreviousPage.IsCrossPagePostBack)
{
Response.Write("Sorry, that's the wrong way to invoke me.");
Response.End();
return;
}
}
If PreviousPage
contains validators then use:
if (!PreviousPage.IsCrossPagePostBack)
{
}
In case of Server.Transfer to obtain previous page in ASP.NET 1.x use:
Page caller = (Page) Context.Handler;
But in ASP.NET 2.0 &+ PreviousPage
can be used and <@% PreviousPageType %> can used for strongly type
access. But in case of Server.Transfer IsCrossPagePostBack
is set to false.
Exception Handling:
Showing a custom page for all exception
and showing a specific page on a specific error code:
<configuration>
<system.web>
<customErrors mode="On"
defaultRedirect="/GenericError.aspx">
<error statusCode="404" redirect="/ErrorPages/Error404.aspx"
/>
<error statusCode="500"
redirect="/ErrorPages/Error500.aspx" />
</customErrors>
</system.web>
</configuration>
Path to the page is passed through the
Query string to exception handling page that can be retrieved as:
Request.QueryString["AspxErrorPath"];
To Write Trace information to other
listeners that are registered in <System.Diagnostics>
Sections.
Personalization:
ProfileModule is responsible for
loading information from the Storage Medium and making them available.
To
load a different profile, handle the Profile_Personalize
method in global.asax.
void
Profile_Personalize(object sender, ProfileEventArgs e)
{
ProfileCommon profile = null;
profile = (ProfileCommon)
ProfileBase.Create("Guest");
// Make the HTTP profile module use THIS profile object
if (profile != null)
e.Profile = profile;
}
Writing
Custom Profile Provider:
http://msdn.microsoft.com/msdnmag/issues/07/03/ASPNET2/default.aspx
One
can use a different provider for each property as shown:
<properties>
<add
name="BackColor" type="string"
provider="MyProvider" />
<add
name="TabSettings" type="string"
provider="SqlProvider" />
</properties>