Hej, Hej Joachim, Jag skulle nog gjort en lösning liknande den som vi diskuterade här tidigare: Tack för svaren! Hmm... Problemet med "min" lösning är att du i det fallet även måste ha en datatable som innehåller avdelningarna i ditt DataSet, och sen ha en relation mellan dessa två DataTables i DataSetet. Skulle det gå att fixa tror du? I så fall så binder du mot DataTablen som innehåller avdelningarna. Hej, För att undvika att komma med några felaktiga svar så hänvisar jag till en sida på MSDN som ger en förklaring av det här, bland annat (finns säkert bättre sidor men det här var den jag hittade efter en snabb sökning): Gruppera från dataset
Jag får tillbaks ett typat dataset och det innehåller en massa användare.
I datasetet får bla FORNAMN, EFTERNAMN och AVDELNING
Nu vill jag gruppera användare per avdelning, alltså först en rubrik, Avdelningsnamn, och sen alla användare som tillhör denna avdelning. Ungefär som forumlistan här på Pellesoft.
Ex:
<b>Avdelning 1</b>
Kalle Svensson
Stina Johansson
<b>Avdelning 2</b>
Johan Andersson
Jenny Svensson
....osv
Hur gör man detta?
Jag tänkte använda en datagrid, men det spelar egentligen ingen roll. Jag kan använda repeater eller datalist också. Jag tar det som är lättast! Det behöver nämligen inte vara något avancerat alls, namnen skall bara listas rakt upp o ner på detta sätt.
/JockeSv: Gruppera från dataset
En lösning är att man har 2 repaterar/datalister.
Då nästlar man dem,
ungefär så här:
<asp:Repeater ...>
<ItemTemplate>
Ex. Forumets namn.
<asp:Repeater ...>
<ItemTemplate>
Listar ett antal trådar tillhörande kategorin
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</aspRepeater>
/m
Sv:Gruppera från dataset
Se: [Komma åt onClick-eventet från dynamisk button]
Där har du två datagrids nästlade i varandra men det skulle lika gärna kunna vara två repeaters som Mikael föreslår. Sv: Gruppera från dataset
Men vad binder jag till den nästlade repeatern/datagriden? Jag har ju bara ett dataset med en tabell.
/JockeSv:Gruppera från dataset
Annars har du en liten fullösning här som kanske kan funka, säkert inte optimal men ändå:
DataGrid (går lika bra med repeater om du hellre vill ha det):
<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False" ShowHeader="False">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Label Runat="server" ID="lblCompID" Visible='<%#getVisibility(Container.DataItem("compid"))%>'><%#Container.DataItem("compid")%><br></asp:Label>
<%#Container.DataItem("name")%>
</ItemTemplate>
</asp:templatecolumn>
</Columns>
</asp:DataGrid>
I codebehind definierar du sen en ArrayList längst upp i filen och lägger in en funktion liknande den här:
Protected Function getVisibility(ByVal strCompid As String) As String
If strArray.Contains(strCompid) Then
Return "False"
Else
strArray.Add(strCompid)
Return "true"
End If
End Function
Hoppas du förstår tanken bakom lösningen.Sv: Gruppera från dataset
Tack! Jag förstår hur du menar.
En kort fråga bara:
Varför "Protected" Function? Vad betyder det och vad är det för skillnad på "Protected" och "Private"?
/JockeSv:Gruppera från dataset
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/methodscope.asp
Hittade även det här provexemplet från en bok på svenska om C#:
http://nezzo.nu/na.asp?id1=228&id2=3045
Anledningen till att jag i det här fallet deklarerat sub:en som protected är att jag vet att det inte kommer funka om den är deklarerad som private :-)