Hej, jag har en <asp:label inuti en asp:repeaters <separatorTemplate>. Jag har försökt med findcontrol men den hittas inte. Hej Jonas Tack, jag förskte med följande men det vill inte fungera, får inget felmeddelande men separatorn ändras inte heller. Hittade felet nu, skulle varaDynamiskt påverka en control i en
Jag skulle vilja ändra text-attributet på den här labeln via code behind, är det möjligt?
Min kod:
<code> <asp:Repeater
ID="MenuItems"
runat="server"
>
<ItemTemplate>
<!-- Innehåll -->
</ItemTemplate>
<SeparatorTemplate>
<asp:Label
ID="SeparatorLabel"
runat="server"
/>
</SeparatorTemplate>
</asp:Repeater></code>Sv:Dynamiskt påverka en control i en
<code>MenuItems.FindControl("SeparatorLabel")</code>
verkar inte hitta den
även testat:
<code>MenuItems.SeparatorTemplate.FindControl("SeparatorLabel")</code>
<code>page..FindControl("SeparatorLabel")</code>
Från vad jag läst verkar det som att FindControl endast letar i <itemtemplate>.
http://www.odetocode.com/articles/116.aspx
Tar upp ämnet rätt bra men presenterar ingen lösning.Sv: Dynamiskt påverka en control i en
Jo du kommer ju att få en SeparatorTemplate mellan varje ItemTemplate därför kan du inte pecka på den så här "MenuItems.SeparatorTemplate.FindControl("SeparatorLabel")". Men du kan nå dom på andra sätt om du vill ändra alla på en gång kan du loopa igenom alla template för repeatern och kolla om dom är en "SeparatorTemplate"och då köra findcontrol. Om du då vill köra kod för en separat "SeparatorTemplate" är det lite jobbigare att ge dig förslag för vet inte när du vill göra det. Hoppas det kan hjälpa dig på vägen.
Mvh MagnusSv:Dynamiskt påverka en control i en
MenuItems är Repeatern och labeln ligger i repepeaterns separatortemplate som jag nämnde.
<code> foreach (RepeaterItem Item in MenuItems.Items)
{
if(Item.ItemType == ListItemType.Separator)
{
Label SeparatorLabel = (Label) MenuItems.Controls[Item.ItemIndex].FindControl("SeparatorLabel");
SeparatorLabel.Text = "a";
}
}</code>Sv: Dynamiskt påverka en control i en
<code> foreach (RepeaterItem Item in MenuItems.Controls)</code>