|
|
ASP.NET 2.0 - The Expando Attribute
By Mads Kristensen
Expert Author
Article Date: 2007-10-19
By coincidence I noticed a method I've never seen before on the ClientScript property of the page class in ASP.NET 2.0.
It's called something as cryptic as RegisterExpandoAttribute and it's very useful.
It can set JavaScript properties on any element you would normally reference with document.getElementById(‘elementID').
That means you can control the state of your HTML elements from the code-behind in a very easy manor.
It also means you can control HTML elements that don't have a runat="server" attribute.
Here are two examples - one where a property is set on a server-control and one on a HTML element otherwise invisible to the code-behind.
Page.ClientScript.RegisterExpandoAttribute(txtPassword.ClientID, "value", "britney");
Page.ClientScript.RegisterExpandoAttribute("maintable", "background", "red");
And this is the JavaScript it produces:
<script type="text/javascript">
<!--
var txtPassword = document.all ? document.all["txtPassword"] : document.getElementById("txtPassword");
txtPassword.value = "britney";
// -->
</script>
I think where this really rocks the most is the ability to control regular HTML elements that hasn't got the runat="server" attribute.
Those elements have always been invisible to the code-behind and now you have direct server-side access to their properties.
The method doesn't give you anything you couldn't do before, but it makes it so much easier and cleaner.
Comments
About the Author: Mads Kristensen currently works as a Senior Developer at Traceworks located
in Copenhagen, Denmark. Mads graduated from Copenhagen Technical Academy with a multimedia degree in
2003, but has been a professional developer since 2000. His main focus is on ASP.NET but is responsible for Winforms, Windows- and
web services in his daily work as well. A true .NET developer with great passion for the simple solution.
http://www.madskristensen.dk/
|
|