有两种方法,
1)sp.net服务器控件结构有点如同dom的树结构,是有层次的。然后this.parent.
如下ascs中的按钮代码:
private void btnShow_Click(object sender, System.EventArgs e)
{
((Button)sender).Parent.Parent.FindControl("btnContorl").Visible=true;
}
private void Button1_Click(object sender, System.EventArgs e)
{
this.Parent.FindControl("btnContorl").Visible=false;
}
{
// 在此处放置用户代码以初始化页面
//注册用户控件事件
this.WebUserControl11.LogInOutClick +=new LogInOutClickHandler(WebUserControl11_LogInOutClick);
}
private void WebUserControl11_LogInOutClick(object sender, EventArgs e)
{
Button button1 = (Button)sender;
switch(button1.Text)
{
case "show":
this.Button1.Visible = true;
break;
case "hide":
this.Button1.Visible = false;
break;
}
}
****************************************************
ascx中的代码
// 定义代理
public delegate void LogInOutClickHandler(object sender,System.EventArgs e);
public{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Button Button2;
public event LogInOutClickHandler LogInOutClick;
private void OnLogInOutClick(object sender,System.EventArgs e)
{
if(LogInOutClick!=null)
LogInOutClick(sender,e);
}
private void Button1_Click(object sender, System.EventArgs e)
{
OnLogInOutClick(sender,e);
}
private void Button2_Click(object sender, System.EventArgs e)
{
OnLogInOutClick(sender,e);
}
对于aspx访问ascx更简单了,
方法如下。将ascx定义为public或protect即可,
如是 webControl objwebControl;
objwebControl.Method();
objwebControl.I;
(((TextBox)objwebControl.FindControl("TextBox1")).Text="abc";)
或objwebControl.Controls["0"].;