ScriptControlDescriptor.AddProperty & Свойства только для чтения - PullRequest
4 голосов
/ 17 марта 2010

Я создаю ASP.NET Server Control со связанным клиентским API.

В моем методе GetScriptDescriptors () я связываю свойство, называемое «строки» ...

descriptor.AddProperty("rows", this.IntRows);

В моем клиентском API я хочу, чтобы мое свойство "rings "было доступно только для чтения ...

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 мог присваивать «строкам» свое начальное значение:

set_rows: function(value)
{
    this._rows = value;
},

Как я могу сделать свойство "rows" доступным только для чтения в клиентском API, если установщик должен присвоить значение из вызова AddProperty?

1 Ответ

0 голосов
/ 20 января 2011

Самый простой способ - заставить set_rows игнорировать любой ввод.По сути, это должно полностью исключить возникновение исключения и при этом обеспечить свойство только для чтения.

set_rows: function(value)
{
    value = null;
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...