I'm creating an ASP.NET Server Control with an associated client-side API.
In my GetScriptDescriptors() method I'm associating a property called "rows"...
descriptor.AddProperty("rows", this.IntRows);
In my client-side API I want my "rows" property to be read-only...
MyControl = function(element)
{
MyControl.initializeBase(this, [element]);
this._rows;
}
MyControl.prototype =
{
initialize: function()
{
MyControl.callBaseMethod(this, 'initialize');
},
get_rows: function()
{
return this._rows;
},
dispose: function()
{
MyControl.callBaseMethod(this, 'dispose');
}
}
However this causes the following error...
Error: Sys.InvalidOperationException: 'rows' is not a writable property.
The following setter seems to be required in order for the $create statement to assign "rows" it's initial value:
set_rows: function(value)
{
this._rows = value;
},
How can I make the "rows" property read-only in the client-side API if the setter is required to assign the value from the AddProperty call?