这是创建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");
感谢。
答案 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 应该是您要创建的属性的名称。