如何通过客户端上的JSProperties访问DevExpress ASPx控件

Soe*_*hay 3 javascript asp.net devexpress

可以说我有几个DevExpress控件,其中一个是按钮.在该按钮上,我想添加每个其他控件的ClientInstanceNames,以便我可以在按钮客户端单击事件中访问它们.

C#:

String strID = "MyButton";
ASPxButton btn =  new ASPxButton() { ClientInstanceName = strID , Text = "Click Here", Width = new Unit("100%"), AutoPostBack = false, CssFilePath = strCssFilePath, CssPostfix = strCssPostFix };
btn.ClientSideEvents.Click = "btnClick";
btn.JSProperties.Add("cp_MyTxtBx", strID );
Run Code Online (Sandbox Code Playgroud)

我想做类似的事......

JS:

<script type="text/javascript">
        function btnClick(s, e) {
            var theTxtBx = document.getElementById(s.cp_MyTxtBx);
            theTxtBx.SetText('some text');
        }
</script>
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我知道我可以这样做:

<script type="text/javascript">
        function btnClick(s, e) {
            MyTxtBx.SetText('some text');
        }
</script>
Run Code Online (Sandbox Code Playgroud)

但这些控件是动态创建的,直到运行时我才会知道它们的ClientInstanceNames.

那么,如何根据ClientInstanceName的String JSProperty获取控件?

提前致谢.

相关帖子但不完全符合我的要求:

如何从JavaScript访问ASPxTextBox的值

DevExpress:如何获取控件客户端的实例并访问其客户端成员?

Fil*_*lip 5

如果我理解正确,这就是你需要的:

var theTxtBx = window[s.cp_MyTxtBx];
Run Code Online (Sandbox Code Playgroud)

使用ClientInstanceName设置的每个devex控件都注册为全局变量.