我有一个用户控件,并且在用户控件的 html 中,我有一个弹出控件的以下定义,我试图通过 javascript 从我的 aspx 页面访问该控件。
<dx:ASPxPopupControl ID="MainASPxPopupControl"
ClientInstanceName="MainASPxClientPopupControl"
runat="server"
HeaderStyle-HorizontalAlign="Left"
RenderMode="Lightweight"
AutoUpdatePosition="true"
PopupHorizontalAlign="WindowCenter"
PopupVerticalAlign="WindowCenter"
OnInit="MainASPxPopupControl_Init">
在用户控件的代码隐藏中,我具有以下属性,因此我的 aspx 页面将能够访问它:
public static object MainASPxClientPopupControl { get; set; }
在 Page_load 事件中我的 aspx 页面后面的代码中,我有以下内容。这样可以防止出现错误:“无法修改 Controls 集合,因为控件包含代码块”</p>
Page.Header.DataBind();
在我的 JS 中,而不是使用:
<%=
这将导致上述错误,我正在使用:
<%#
这是一个数据绑定表达式,需要我的 page_load 方法中的代码段。
这就是真正的问题所在......我的aspx页面上的JS函数中有代码被命中,但始终显示该对象为空。我只是想获取对象的一个实例(用户控件中的弹出控件),我可以在其中相应地使用它。
var cntrl = document.getElementById('<%# BMCIS.Source.Controls.ManagerSwipe.MainASPxClientPopupControl %>');
cntrl.Show();
在调试过程中,运行时代码显示如下:
var cntrl = document.getElementById('');
给出的错误消息是:“无法获取未定义或空引用的属性‘显示’”,这显然意味着(在调试期间检查)变量“cntrl”为空并且无法在用户控件中获取弹出控件的实例。
我怎样才能成功获得这个控件的实例???