用户控件动态交替加载遇到的问题
aspx:
@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm5.aspx.cs" Inherits="WebApp.WebForm5" %>
<%@ Register src="WebUserControl1.ascx" tagname="WebUserControl1" tagprefix="uc1" %>
<%@ Register src="WebUserControl2.ascx" tagname="WebUserControl2" tagprefix="uc2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div >
<asp:Panel ID="Panel1" runat="server">
</asp:Panel>
</div>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="显示1" />
<asp:Button ID="Button2" runat="server" Text="显示2" onclick="Button2_Click" />
<asp:Button ID="Button3" runat="server" onclick="Button3_Click"
Text="用户控件里按钮的Text" />
</form>
</body>
</html>
-----------------------------------------------------------------------------------------------------
cs:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Session["cname"] = "WebUserControl1.ascx";
}
addcontrol();
}
protected void Button1_Click(object sender, EventArgs e)
{
Session["cname"] = "WebUserControl1.ascx";
addcontrol();
}
protected void Button2_Click(object sender, EventArgs e)
{
Session["cname"] = "WebUserControl2.ascx";
addcontrol();
}
void addcontrol()
{
Control uc = LoadControl(Session["cname"].ToString());
Panel1.Controls.Clear();
Panel1.Controls.Add(uc);
}
protected void Button3_Click(object sender, EventArgs e)
{
Response.Write((Panel1.Controls[0].Controls[0] as Button).Text);
}
--------------------------------------------------------------------------------------
WebUserControl1.ascx
html:
<asp:Button ID="Button1" runat="server" Text="b1" onclick="Button1_Click"
Width="158px" />
cs:
protected void Page_Load(object sender, EventArgs e)
{
Button1.Text = "第一个:1";
}
protected void Button1_Click(object sender, EventArgs e)
{
Button1.Text = "第一个:2";
}
-----------------------------------------------------------------------------------------
WebUserControl2.ascx
html:
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
cs:
protected void Page_Load(object sender, EventArgs e)
{
Button1.Text = "第二个:1";
}
protected void Button1_Click(object sender, EventArgs e)
{
Button1.Text = "第二个:2";
}
-----------------------------------------------------------------------------------------
为什么交替显示后,控件里面的按钮要点两次才能相应,而且用户控件里按钮的Text 总是获取不到