ajax asp网络控件中的javascript

时间:2012-11-14 18:50:16

标签: javascript asp.net asp.net-ajax custom-server-controls

这是创建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");

感谢。

1 个答案:

答案 0 :(得分: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 应该是您要创建的属性的名称。