ScriptControlDescriptor.AddProperty&只读属性

时间:2010-03-17 16:20:17

标签: c# asp.net client-side servercontrols

我正在使用关联的客户端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”属性设置为只读?

1 个答案:

答案 0 :(得分:0)

最简单的方法是让set_rows忽略任何输入。实际上,这应该可以完全阻止异常发生,并且仍然为属性提供只读功能。

set_rows: function(value)
{
    value = null;
},