4
我使用关联的客户端API创建ASP.NET服务器控件。ScriptControlDescriptor.AddProperty&只读属性
在我GetScriptDescriptors()方法我关联一个名为“行”的属性...
descriptor.AddProperty("rows", this.IntRows);
在我的客户端API我想是只读的我的“行”属性.. 。
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');
}
}
然而,这将导致以下错误......
Error: Sys.InvalidOperationException: 'rows' is not a writable property.
下制定者似乎被要求或DER为$ create语句分配“行”这是初始值:
set_rows: function(value)
{
this._rows = value;
},
我怎样才能让“行”属性只读在客户端API,如果需要的setter从赋值AddProperty调用?
感谢您的回复。我还没有机会测试它。不过,我不确定我是否遵循了您的示例。如果调用者被调用,那么不会简单地清除“行”值吗? – 2011-01-21 09:10:31
@Poz你的纠正会。我将错误的选项设置为null。另一种选择是抛出一个未实现的异常,但是这需要由编码器处理。宁可只是默默地忽略这个集合。 – BinaryMisfit 2011-01-21 09:22:40
感谢您的澄清。 – 2011-01-24 14:51:36