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