我在母版页中包含的标题(用户控件)中创建了一个文本框和一个提交按钮
我想在.aspx.vb页面中点击提交后使用该文本框值。
我如何访问它,因为首先加载vb页面然后加载主页面?
答案 0 :(得分:0)
通过这种方式,您不会将UserControls与其Pages / MasterPages以及具有Master的Master页面硬链接。
向用户单击按钮时引发的UserControl添加事件,例如:
在MyControl
类型的UserControl中:
public delegate void SubmittedHandler(MyControl ctrl);
public event SubmittedHandler Submitted;
protected void BtnCLick(object sender, EventArgs e) {
Submitted(this);
}
然后在MasterPage中为此事件添加处理程序,处理它并再次引发Master事件:
在Master的代码隐藏中:
public delegate void MyControlSubmittedHandler(MyControl ctrl);
public event MyControlSubmittedHandler ControlSubmitted;
protected void Page_Init(Object sender, EventArgs e) {
this.MyControl1.Submitted += MyControlSubmitted;
}
protected void MyControlSubmitted(MyControl sender) {
ControlSubmitted(sender);
}
然后将此事件的处理程序添加到您的页面:
在你的页面中:
protected void Page_Init(object sender, EventArgs e) {
((SiteMaster)Master).ControlSubmitted += MasterControlSubmitted;
}
protected void MasterControlSubmitted(MyControl sender){
// do whatever you need to do
}
如果您只需要从页面访问TextBox
并且您不需要处理点击事件,您还可以使用属性来实现此目的:
MyControlText
属性UserControl
中的TextBox.Text
MyControlText
中Master
获取/设置UserControl的MyControlText
属性((SiteMaster)Master).MyControlText = "Hello World";
答案 1 :(得分:0)
TextBox Val =(TextBox)this.Master.FindControl(“TextBoxID”);