我有一个名为test.aspx的页面,带有test.cs. 但是,我想访问名为mbResult的控件 这是我的自定义消息框控件,来自一个单独的CS页面。 我知道很多人都问过这个问题,我发现这是一种访问我的控件的方法。
MessageBoxControl mbox1 = this.FindControl("mbResult") as MessageBoxControl;
但我一直收到这个错误 错误5关键字'this'在静态属性,静态方法或静态字段初始值设定项中无效
关于如何访问此控件的任何想法我想要做的就是让它可见。 感谢
答案 0 :(得分:2)
Statics没有基于实例的上下文,因此使用this
不适用。您需要对要使用的控件的引用.FindControl(可能通过将其作为参数传递)。
答案 1 :(得分:2)
您需要将代码移动到非共享方法中。您需要在页面的实例中操作。
更新评论中的说明
不幸的是,您的应用程序需要进行一些重组。
如果messageboxcontrol显示在新窗口中,则需要将源页面中的值传递给查询字符串中的新窗口。
但是,如果您希望消息框控件显示在源页面上,则需要将其从页面转换为UserControl,将用户控件的引用添加到源页面,然后添加实例用户控件直接到源页面。