module.FindControl("minControl")
Varför behöver du göra detta? Om du har laddat en UserControl i din PlaceHolder bör all kod som har hand om UserControlen i den controlen ligga i denna.
3 svar · 244 visningar · startad av Vide
Hur refererar man in ett objekt som ligger i en Control?
En PlaceHolder i själva sida är ser ju ut såhär:
protected System.Web.UI.WebControls.PlaceHolder module;
Men hur ser det ut när man skall länka in någonting som ligger i en Control, låt säga att den heter VisitorLog.
Mvh, Vide
module.FindControl("minControl")
Varför behöver du göra detta? Om du har laddat en UserControl i din PlaceHolder bör all kod som har hand om UserControlen i den controlen ligga i denna.
Nja, alltså module var bara ett exempel på en referens, jag skickar med lite kod.
Control:
<%@ Control Language="C#" %>
<span class="vspacer"> </span>
<table class="mainbottomtable">
<tr>
<td width="100"></td>
<td class="mainbottomcell">copyright information</td>
<td width="100">Besökare: [b]<asp:Label Runat="server" ID="visitorLogLabel" />[/b]</td>
</tr>
</table>
Denna är inlagd i default.aspx:
<element:footer id="footer" runat="server" />
Med detta register:
<%@ Register TagPrefix="element" TagName="footer" Src="modules/footer.ascx" %>
Vad jag nu vill göra är att få en referens till visitorLogLabel inuti default.aspx.cs, precis som man gör när man skall komma åt en WebControl i default.aspx.
Vart det snurrigt?
Faktiskt lite :)
Om du vill komma åt något innut i en control får du nog göra så här: ((Label)footer.FindControl("visitorLogLabel")).Text = "foo";
Men om jag skulle vilja komma åt properties i en UserControl skulle jag göra någon form av funktion eller publik propertie som man anropar/sätter och som sedan sätter rätta värde på saker i din UserControl