Properties for extenders inheriting
ExtenderControlBase typically looks like this:
[ExtenderControlProperty]
[DefaultValue("")]
public string MyProperty
{
get
{
return GetPropertyValue("MyProperty", "");
}
set
{
SetPropertyValue("MyProperty", value);
}
}
You must have a property with the same name in the behavior on the client side:
get_MyProperty : function() {
return this._myProperty;
},
set_MyProperty : function(value) {
this._myProperty = value;
}
But what if you want it to have different name on the client side? Easy. Add the
ClientPropertyName attribute to the server side property. If we want
MyProperty to be called
myProp instead this is how it's done:
[ExtenderControlProperty]
[DefaultValue("")]
[ClientPropertyName("myProp")]
public string MyProperty
{
get
{
return GetPropertyValue("MyProperty", "");
}
set
{
SetPropertyValue("MyProperty", value);
}
}
On the client side we get:
get_myProp : function() {
return this._myProperty;
},
set_myProp : function(value) {
this._myProperty = value;
}
More on attributes:
http://ajax.asp.net/ajaxtoolkit/Walkthrough/ExtenderClasses.aspx