我正在使用关联的客户端API创建ASP.NET服务器控件。
在我的GetScriptDescriptors()方法中,我正在关联一个名为“rows”的属性......
descriptor.AddProperty("rows", this.IntRows);
在我的客户端API中,我希望“rows”属性为只读...
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');
}
}
然而,这会导致以下错误......
错误:Sys.InvalidOperationException: 'rows'不是可写属性。
为了让$ create语句为它的初始值分配“rows”,似乎需要以下setter:
set_rows: function(value)
{
this._rows = value;
},
如果需要setter从AddProperty调用中分配值,如何在客户端API中将“rows”属性设置为只读?
答案 0 :(得分:0)
最简单的方法是让set_rows忽略任何输入。实际上,这应该可以完全阻止异常发生,并且仍然为属性提供只读功能。
set_rows: function(value)
{
value = null;
},