kar*_*k k 3 c# user-controls parent-child
我有一个这样的方法从其User Control调用Parent Page方法.这个"DisplayMessage"函数只接受一个字符串变量消息并在屏幕上显示它.在用户控件中,我放置了一个文本框和一个按钮.在Button的click事件中,我调用了上面讨论的Parent Page方法,我们使用Reflection并将文本框的值传递给方法,然后调用该方法并在屏幕上显示消息.
父页面:
public void DisplayMessage(string message)
{
Response.Write(message);
}
Run Code Online (Sandbox Code Playgroud)
用户控制:
protected void btnSend_Click(object sender, EventArgs e)
{
this.Page.GetType().InvokeMember("DisplayMessage",System.Reflection.BindingFlags.InvokeMethod, null, this.Page, new object[] { txtMessage.Text });
}
Run Code Online (Sandbox Code Playgroud)
这对我来说可以.
现在我需要的是,我必须从其父页面调用UserControl中存在的方法.
请建议我.提前致谢.
无论您将ID=""控件放在页面上设置属性,都可以使用变量名称从页面中引用它.
因此,如果您的页面如下所示:
<my:UserControl runat="server" ID="myControl" />
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
myControl.MyControlMethod()
Run Code Online (Sandbox Code Playgroud)
从父级在用户控件中调用的方法必须是公共的.如果它是私有的或受保护的,则无法从父级调用该方法.
此外,不是通过反射调用页面函数,而是最好使用事件.