Scott on Writing

Musings on technical writing...

Adaptive Rendering

After yesterday's post on Panel Weirdness some questions from Milan Negovan prompted me to write an article on how ASP.NET employes adaptive rendering.  The HTML markup emitted from a Web control depends on the browser requesting the page. 

Behind the scenes, the Page class creates an HtmlTextWriter instance based on the Browser object's TagWriter property.  By default, the TagWriter property refers to HtmlTextWriter, which emits HTML 4.0-compliant HTML markup.  For non-Microsoft browsers, the Html32TextWriter class is used instead, which emits HTML 3.2-compliant HTML.  All of this information, thankfully, is configurable through the <browserCaps> section.

One issue that configuring the <browserCaps> section doesn't address is the validation controls and their client-side validation scripts.  This, really, is another can of worms, as the System.Web.UI.WebControls.BaseValidator class annoyingly uses document.all to reference the client-side validator controls.  (document.all is not supported in non-Microsoft browsers.)  The short of it is that you have to create your own set of validation controls, such as Paul Glavich's DomValidators, which starts from scratch with the creation of a BaseValidator class that uses document.getElementById() instead.

Read the article, A Look at ASP.NET's Adaptive Rendering

posted on Thursday, April 29, 2004 12:19 PM

Feedback

# re: Adaptive Rendering 4/29/2004 12:44 PM AndrewSeven

Downlevel browsers perform validation on postback only ;)

# re: Adaptive Rendering 4/29/2004 12:50 PM Milan Negovan

Wow! That was fast! Thank you for clarifying this whole subject, Scott.

# re: Adaptive Rendering 4/29/2004 1:39 PM Scott Mitchell

Andrew, you can create your own custom validation controls from a custom BaseValidator class and get validation on DOM-compliant browsers. Check out Paul Galvich's DomValidators (link in blog entry).

# re: Adaptive Rendering 6/2/2004 5:24 AM Craig Dunn

Paul Glavich's DomValidators have been around a while, as far as I can tell (2002?) but <i>very</i> similar code (ie. close to identical) now appears on MSDN <a href="http://msdn.microsoft.com/library/en-us/cpguide/html/cpconvalidatorcontrolsamples.asp?frame=true">as 'sample' code for building Custom Validators</a>...
The <a href="http://msdn.microsoft.com/library/en-us/cpguide/html/cpconsamplepagecodebehindfile.asp">test page</a> offered on MSDN works verbatim with Paul's stuff.
Has MS just repurposed them? It's certainly way more detailed sample code that we're used to finding on MSDN (I think they may have tidied up the jscript a bit...).

Title:  
Name:  
Url:
Protected by Clearscreen.SharpHIPEnter the code you see:
Comments   

My Links

Ads Via DevMavens

Archives

Post Categories

 

I am a Microsoft MVP for ASP.NET.
I am an ASPInsider.
<March 2010>
SMTWTFS
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910

Comment Stats

DayTotal% of Total
Sunday 2056.8%
Monday 42514.1%
Tuesday 51917.2%
Wednesday 55518.4%
Thursday 58019.2%
Friday 54718.1%
Saturday 1886.2%
Total 3019100.0%

Hour1Total% of Total
12:00 AM 782.6%
1:00 AM 812.7%
2:00 AM 682.3%
3:00 AM 822.7%
4:00 AM 692.3%
5:00 AM 1264.2%
6:00 AM 1183.9%
7:00 AM 1816.0%
8:00 AM 1926.4%
9:00 AM 1585.2%
10:00 AM 1886.2%
11:00 AM 1936.4%
12:00 PM 2016.7%
1:00 PM 1846.1%
2:00 PM 1695.6%
3:00 PM 1354.5%
4:00 PM 1153.8%
5:00 PM 1073.5%
6:00 PM 1013.3%
7:00 PM 1073.5%
8:00 PM 923.0%
9:00 PM 882.9%
10:00 PM 913.0%
11:00 PM 953.1%
Total 3019100.0%

Comments by Blog Entry Date/Time

Day Entry MadeAvg.Total
Sunday 4.97159
Monday 4.80384
Tuesday 4.04477
Wednesday 7.39680
Thursday 6.26676
Friday 5.07466
Saturday 4.78177
Total 5.403019

Hour1 Entry MadeAvg.Total
12:00 AM 5.2937
1:00 AM 1.002
5:00 AM 0.000
7:00 AM 3.8550
8:00 AM 3.72134
9:00 AM 6.06297
10:00 AM 5.63276
11:00 AM 4.22194
12:00 PM 6.16351
1:00 PM 3.09133
2:00 PM 4.89230
3:00 PM 7.64321
4:00 PM 4.00108
5:00 PM 6.07170
6:00 PM 4.64116
7:00 PM 8.95188
8:00 PM 8.63164
9:00 PM 5.00115
10:00 PM 6.31101
11:00 PM 4.5732
Total 5.403019

Learn More About Comment Stats
1 - All times GMT -8...


Blog Stats

Favorite Web Sites

My Books

My MSDN Articles