所以我想做的只是找到一个基于下拉选择加载的用户控件。我添加了用户控件,但现在我正在尝试找到该控件,以便我可以访问它的几个属性,但我一生都找不到该控件。我实际上是在母版页中完成所有这些操作,而 default.aspx 页面本身没有代码。任何帮助,将不胜感激。
母版页.aspx
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager runat="server">
</asp:ScriptManager>
</div>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false"
OnLoad="UpdatePanel2_Load">
<ContentTemplate>
<div class="toolbar">
<div class="section">
<asp:DropDownList ID="ddlDesiredPage" runat="server" AutoPostBack="True" EnableViewState="True"
OnSelectedIndexChanged="goToSelectedPage">
</asp:DropDownList>
<asp:DropDownList ID="ddlDesiredPageSP" runat="server" AutoPostBack="True" EnableViewState="True" OnSelectedIndexChanged="goToSelectedPage">
</asp:DropDownList>
<br />
<span class="toolbarText">Select a Page to Edit</span>
</div>
<div class="options">
<div class="toolbarButton">
<asp:LinkButton ID="lnkSave" CssClass="modal" runat="server" OnClick="lnkSave_Click"><span class="icon" id="saveIcon" title="Save"></span>Save</asp:LinkButton>
</div>
</div>
</div>
</ContentTemplate>
<Triggers>
</Triggers>
</asp:UpdatePanel>
<div id="contentContainer">
<asp:UpdatePanel ID="UpdatePanel1" runat="server" OnLoad="UpdatePanel1_Load" UpdateMode="Conditional"
ChildrenAsTriggers="False">
<ContentTemplate>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="lnkHome" EventName="Click" />
<asp:AsyncPostBackTrigger ControlID="rdoTemplate" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</div>
MasterPage.cs
protected void goToSelectedPage(object sender, System.EventArgs e)
{
temp1 ct = this.Page.Master.LoadControl("temp1.ascx") as temp1;
ct.ID = "TestMe";
this.UpdatePanel1.ContentTemplateContainer.Controls.Add(ct);
}
//This is where I CANNOT SEEM TO FIND THE CONTROL ////////////////////////////////////////
protected void lnkSave_Click(object sender, System.EventArgs e)
{
UpdatePanel teest = this.FindControl("UpdatePanel1") as UpdatePanel;
Control test2 = teest.ContentTemplateContainer.FindControl("ctl09") as Control;
temp1 test3 = test2.FindControl("TestMe") as temp1;
string maybe = test3.Col1TopTitle;
}
在这里我不明白它在告诉我什么。对于“par”,我得到“ctl09”,我不知道我应该如何找到这个控件。temp1.ascx.cs
protected void Page_Load(object sender, EventArgs e)
{
string ppp = this.ID;
string par = this.Parent.ID;
}