1

这是创建 javascript 对象的函数

      public IEnumerable<ScriptDescriptor>
          GetScriptDescriptors()
    {
        ScriptControlDescriptor descriptor = new ScriptControlDescriptor("HierarchyPathControl.PathExplorer", this.ClientID);
        descriptor.AddProperty("some_property", "some_value");

        yield return descriptor;
    }

这是 .js 文件的一部分

    Type.registerNamespace("HierarchyPathControl");

        HierarchyPathControl.PathExplorer = function (element) {
        HierarchyPathControl.PathExplorer.initializeBase(this, [element]);
        alert("invoked");

    }


  HierarchyPathControl.PathExplorer.prototype = {
       initialize: function () {

        HierarchyPathControl.PathExplorer.callBaseMethod(this, 'initialize');
        alert("not invoked");   

},
..............................

为什么只有当我删除此行时才会调用第二个警报:

    descriptor.AddProperty("some_property", "some_value");

谢谢。

4

1 回答 1

2

如果在页面初始化过程中出现 js 错误,请检查错误控制台。问题似乎是您没有在客户端类中定义some_property属性。确保在 HierarchyPathControl.PathExplorer 客户端类中具有以下 get/set 方法定义:

get_some_property = function() {
    return this._some_property;
},
set_some_property = function(value) {

    if (this._some_property != value) {
        this._some_property = value;
        this.raisePropertyChanged('some_property');
    }
}

这里基本上some_property应该是您要创建的属性的名称。

于 2012-11-14T20:52:24.270 回答