c# - ScriptControlDescriptor.AddProperty 和只读属性

标签 c# asp.net client-side servercontrols

我正在创建一个带有关联客户端 API 的 ASP.NET 服务器控件。

在我的 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.

似乎需要以下 setter 才能使 $create 语句为“行”分配初始值:

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

如果 setter 需要从 AddProperty 调用分配值,我如何在客户端 API 中将“行”属性设置为只读?

最佳答案

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

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

关于c# - ScriptControlDescriptor.AddProperty 和只读属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2463955/

相关文章:

c# - 以编程方式将 WPF DataGrid 列宽定义为 100%

c# - Azure Function Http Trigger 验证正文数据

c# - 登录和登录状态目标 URL 无法正常工作

Javascript 大师说服我应该使用 javascript 编译成 js 语言,如 Dart 或 Typescript

javascript - 使用浏览器 keystore 中的私钥进行基于浏览器的加密/解密

c# - LINQ - 遍历二维数组的行

c# - foreach over Hashtable 在第一个键上停止

asp.net - 适合 .Net 开发人员的优秀 Ruby on Rails 书籍

javascript - 使用 Web Api Controller 参数映射 AngularJs 查询字符串

javascript - 使用 jsPDF 从动态内容生成 PDF 时遇到问题