Hej! Du kan göra på detta viset: Jättebra, det löste det. Jag är inte riktigt med på hur du vill ha det, men jag undrar om det inte vore bättre att skippa repeatern och bygga menyn dynamiskt själv. Jag vill alltså skapa en ny komplett meny per träff i databasen, och enda skillnadenKontrollen Meny
Någon som kan beskriva hur man ifrån Code Behind bygger upp en meny.
Denna kodsnutt har jag lagt in på *.aspx-sidan.
<code>
<asp:Menu ID="contentMenu" runat="server"
</asp:Menu>
</code>
Sedan vill jag ifrån *.aspx.vb-sidan bygga upp menyn så jag kan ange dynamisk NavigateUrl.
Jag vet att man kan skriva t.ex:
<code>
contentMenu.Items.Add(New MenuItem("meny1", "Default.aspx"))
</code>
Men om jag vill skapa en submeny till en huvudmeny, och även ange lite egenskaper såsom, Selectable=false, var och hur gör jag det.
Jag har letat runt på nätet och googlat, men jag kan inte finna information om detta.
Med Vänliga Hälsningar
Micke!Sv: Kontrollen Meny
dim m as new menuitem
m.text="text på menyn"
'för att lägga till undermenyer gör följande:
dim m2 as new menuitem
m2.text="Undermeny"
m.childitems.add(m2)
contentmenu.items.add(m)Sv:Kontrollen Meny
Nu till nästa trubbel :)
Jag har alltså en Repeater där jag presenterar en meny per träff i databasen.
Menyn är nu byggd "statiskt" i *.aspx filen.
Och jag vill åstadkomma att NavigateURL blir dynamisk från aktuell post i databasen.
T.ex Default2.aspx?ID="databasID"
Kan man bygga upp en dynamisk meny inuti en repeater från Code Behind, eller ska jag använda den statiska och isåfall....hur sätter jag det dynamiska ID:et?Sv: Kontrollen Meny
Då loopar du igenom din datakälla och lägger till undermenyer som i nästföregående inlägg.
Hur ser din kod ut som hämtar datat?Sv:Kontrollen Meny
ska vara ID:et i querystringen.
Det ser ut som följande:
Så här ser repeatern ut:
<code>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:Menu ID="newsMenu" runat="server">
<Items>
<asp:MenuItem Text="Meny" Value="Meny" Selectable="false">
<asp:MenuItem Text="Redigera" Value="Redigera" NavigateUrl="Default.aspx?ID="></asp:MenuItem>
<asp:MenuItem Text="Ta bort" Value="Ta bort"></asp:MenuItem>
</asp:MenuItem>
</Items>
</asp:Menu>
<div class="post">
<h3><span><%# Eval("data1")%></span> / <%#Eval("Date", "{0:d}")%></h3>
<p><%#Eval("data2")%></p>
</div>
</ItemTemplate>
</asp:Repeater>
</code>
Och det är vid menuItem Redigera och Ta bort som jag vill kunna lägga till aktuellt ID i Querystringen
Från Code-Behind utför jag databas-kopplingen och binder den med repeatern:
<code>
SQLString = "SELECT Top 5 * FROM tblData ORDER BY date"
DBCommand = New OleDbCommand(SQLString, DBConnection)
Repeater1.DataSource = DBCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
Repeater1.DataBind()
</code>