Hej! du kan använda dig av OnItemDataBound eventet , i det kan du leta rätt på din controll (FindControl) och modifiera den. Sätt OnItemDataBound="myRepeater_ItemDataBound" på din kontroll (repeater) eller sätt eventet via code-behind. Därefter subrutinen (ItemDataBound) i code-behind: Försökte översätta till VB: Nu chansar jag, men jag tror man behöver lägga till en "handle" för att koppla eventet till subrutien i VB.net? Löste det så här:Repeater-trubbel
Jag har en repeater där jag presenterar en meny per träff i databasen(kan alltså bli många).
Saken är att jag skulle vilja ändra visible till False från Code Behind på samtliga menyer. Någon som vet hur jag ska bete mig för det?
<code>
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="DataSource1">
<ItemTemplate>
<asp:Menu ID="DropMenu" runat="server">
<Items>
<asp:MenuItem Text="Meny" Value="Meny" Selectable="false">
<asp:MenuItem Text="Skriv" Value="Skriv"></asp:MenuItem>
<asp:MenuItem Text="Ta bort" Value="Ta bort"></asp:MenuItem>
</asp:MenuItem>
</Items>
</asp:Menu>
</ItemTemplate>
</asp:Repeater>
</code>Sv: Repeater-trubbel
Sv: Repeater-trubbel
void myRepeater_ItemDataBound(object Source, RepeaterCommandEventArgs e) {
Menu menu = e.Item.FindControl("myMenu") as Menu; // myMenu = Ditt namn på menyn
menu.Visible = false;
}
Något sånt där iallafall.
Sv:Repeater-trubbel
I Default.aspx.vb:
<code>
Protected Sub hide_menu(ByVal Source As Object, ByVal e As RepeaterCommandEventArgs)
Dim menu As Menu = e.Item.FindControl("newsMenu")
menu.Visible = False
End Sub
</code>
Sen satte jag på repeatern:
<code>
<asp:Repeater ID="newsRepeater" OnItemDataBound="hide_menu" runat="Server">
</code>
Men jag får den inte att fungera.....Sv: Repeater-trubbel
Vilket skulle kunna bli
Protected Sub hide_menu(ByVal Source As Object, ByVal e As RepeaterCommandEventArgs) Handles myRepeater.ItemDataBound
' ...
End Sub
Sedan kan du ju testa att skriva ut något från subrutinen så att du ser att den verkligen körs (eller exempelvis sätta en breakpoint i subrutinen vid debug)
Sv:Repeater-trubbel
<code>
Public Sub hide_menu(ByVal Sender As Object, ByVal e As RepeaterItemEventArgs)
Dim menu As Menu = TryCast(e.Item.FindControl("newsMenu"), Menu)
If Session("inloggad") = False Then
menu.Visible = False
End If
End Sub
</code>