我想通过一个preifened名称访问usercontrol,就像DevExpress组件一样。像这样:
"<dx:MyUserControl runat="server" ID="My" ClientInstanceName="MyClient"></>"
在我的主页面中,我想访问usercontrol的客户端方法。 类似的东西:
MyClient.DoSomething();
在我的usercontrol页面中会有一个实现此方法的对象:
function myClass{
DoSomething : function(){ var a = 2 + 2;}
}
所以,通常我会将对象声明为: var MyClient = new myClass();
但是现在MyClient是动态的,ClientInstanceName
可能是什么......
那我怎么能这样做?
也许JSON或eval?
答案 0 :(得分:1)
你的问题有点双重含义,所以让我回答一下我找到的两种意义。
您有一个名为MyClient
的变量和一个名为myClass
的类。
现在,即使我们假设这两个名称都是动态的,您也可以将这两个名称存储在变量A
和B
中,这样
如果B
等于"foobar"
,那么您确定页面上有一个类
function foobar() { ... }
如果A
等于"myFoobar"
,您就知道必须实际执行类似
var myFoobar = new foobar();
现在,由于变量和类都是全局范围的,因此您可以轻松地执行
window[A] = new window[B]();
那就是它!