[ASP .NET] Affichage structurer d'une SQLDataSource

Bien le bonjour, je me demandais s’il était possible d’afficher les résultats d’une SQLDataSource de facon structurer. Je m’explique, j’ai en sortie plusieurs redondance d’une catégorie dont seul leur sous catégories varient.

Je souhaiterais plus avoir un affichage de ce style :

Catégorie 01

  • Sous catégorie 1-01 : données
  • Sous catégorie 1-02 : données
  • Sous catégorie 1-03 : données

Catégorie 02

  • Sous catégorie 2-01 : données
  • Sous catégorie 2-02 : données

Sachant que le résultat de sortie me génère la liste tel qu’il est actuellement (si j’utilise une gridview) :

Catégorie 01 - Sous catégorie 1-01 : données
Catégorie 01 - Sous catégorie 1-02 : données

Catégorie 02 - Sous catégorie 2-01 : données

y’a pas des treeview qui pourraient te servir dans asp.net 2 ?

Je ne les ai jamais utilisé mais ça doit pouvoir faire ce que tu veux.

“Ou alors je me gourre.”

J’y avais pas pensé à ca. Je vais voir s’il gère les DataSources. J’ai quand même perdu presque une demi journée à trouver des astuces ca et là, en fouillant tous les composant utiles via MSDN, j’ai rien. A moin d’etre passé à coté.

Bon finalement, j’ai peut etre trouvé le composant qu’il me faut. Il s’agit du Repeater. Par contre, j’ai un gros problème.

Le Repeater est lié à une de mes SQLDataSource, à l’intérieur de mon Repeater, j’ai placé 1 Gridview qui devrait me générer un tableau bourré de données qui dépendent de l’ID de ma SQLDataSource définit dans le Repeater. Malheureusement, la gridview ne semble pas intercepter l’id.

En plus court ca donne un tableau par salon :

Salon A : +données

  • Catégorie 01

  • Catégorie 02

  • Catégorie 03


Salon B : +données

  • Catégorie 01

Le salon est affiché à la manière d’une formview, tandis que les catégories seront listées dans une Gridview.

Voilà le source en question :

[code]<asp:Repeater ID=“Repeater1” runat=“server” DataSourceID=“DS_agenda_salons”>





















Salon Date début Date fin Ouverture Fermeture Décalage horaire

<asp:HiddenField ID=“HiddenF_id_salon” runat=“server” Value=’<%# Eval(“id_salon”) %>’ />
<asp:Label ID=“Label3” runat=“server” Text=’<%# Eval(“lb_nom”) %>’></asp:Label>

<asp:Label ID=“Label4” runat=“server” Text=’<%# Eval(“dt_date_debut_court”) %>’></asp:Label>

<asp:Label ID=“Label5” runat=“server” Text=’<%# Eval(“dt_date_fin_court”) %>’></asp:Label>

<asp:Label ID=“Label6” runat=“server” Text=’<%# Eval(“dt_heure_debut_court”) %>’></asp:Label>

<asp:Label ID=“Label7” runat=“server” Text=’<%# Eval(“dt_heure_fin”) %>’></asp:Label>

<asp:Label ID=“Label8” runat=“server” Text=’<%# Eval(“dt_decalage_horaire”) %>’></asp:Label>

<asp:SqlDataSource ID=“DS_agenda_rendezvous” runat=“server"
ConnectionString=”<%$ ConnectionStrings:DCN_planningConnectionString %>"
SelectCommand=“SELECT * FROM TATATI WHERE machin”>

<asp:FormParameter FormField=“HiddenF_id_salon” Name=“id_agenda_salon” />
<asp:SessionParameter Name=“username” SessionField=“current_username” />
<asp:SessionParameter SessionField=“date_agenda” Name=“date” Type=“String” />

</asp:SqlDataSource>
				<asp:GridView ID="GridV_agenda_rendezvous" runat="server" AutoGenerateColumns="False" CellPadding="4" DataSourceID="DS_agenda_rendezvous" ForeColor="#333333">
					<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
					<Columns>
						<asp:BoundField DataField="lb_nom" HeaderText="Rendez vous" SortExpression="lb_nom" >
							<HeaderStyle HorizontalAlign="Center" Width="160px" />
						</asp:BoundField>
						<asp:BoundField DataField="dt_date_court" HeaderText="Date" ReadOnly="True"
							SortExpression="dt_date_court" >
							<ItemStyle HorizontalAlign="Center" />
							<HeaderStyle HorizontalAlign="Center" Width="50px" />
						</asp:BoundField>
						<asp:BoundField DataField="dt_debut" HeaderText="Arrivée" ReadOnly="True" SortExpression="dt_debut" >
							<ItemStyle HorizontalAlign="Center" />
							<HeaderStyle HorizontalAlign="Center" Width="40px" />
						</asp:BoundField>
						<asp:BoundField DataField="dt_duree" HeaderText="Durée" ReadOnly="True" SortExpression="dt_duree" >
							<ItemStyle HorizontalAlign="Center" />
							<HeaderStyle HorizontalAlign="Center" Width="50px" />
						</asp:BoundField>
						<asp:BoundField DataField="dt_fin" HeaderText="Départ" ReadOnly="True" SortExpression="dt_fin" >
							<ItemStyle HorizontalAlign="Center" />
							<HeaderStyle HorizontalAlign="Center" Width="40px" />
						</asp:BoundField>
					</Columns>
					<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
					<EditRowStyle BackColor="#999999" />
					<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
					<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
					<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
					<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
				</asp:GridView>
			</td>
		</tr>
	</ItemTemplate>
	<FooterTemplate>
		</table>
	</FooterTemplate>
</asp:Repeater>[/code]