webForumDet fria alternativet

Referens till Label i Control

.NET

3 svar · 244 visningar · startad av Vide

Medlem sedan dec. 19998 577 inlägg
Frågan#1

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

Medlem sedan apr. 20012 266 inlägg
#2
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.

Medlem sedan dec. 19998 577 inlägg
#3

Nja, alltså module var bara ett exempel på en referens, jag skickar med lite kod.

Control:

<%@ Control Language="C#" %>

<span class="vspacer">&nbsp;</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?

Medlem sedan apr. 20012 266 inlägg
#4

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

256 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)