2010-04-14 9 views
1

Je suis en train de créer un code HTML dynamique à partir de certaines données de DB. Mes données renvoyées par db est:Rendu des données similaires dans ASP.NET par le regroupement

 
ApplicationName  URL 
------------------------------ 
AppName1    URL1 
AppName2    URL1 
AppName2    URL2 
AppName1    URL2 

Je veux que devrait être rendue sous une seule rubrique de NomApplication de toutes les URL pour une seule application. Comme:

 
AppName1 

     URL1 

     URL2 

AppName2 

     URL1 

     URL2 

Quelqu'un peut-il me aider dans le code pour cela?

+0

Pourriez-vous indiquer si vous utilisez mvc ou webforms; ou autre chose? De cette façon, il est plus facile de câbler un exemple. – Thomas

+0

Il s'agit de simples formulaires Web. – Ashish

Répondre

2

Votre code derrière a probablement quelque chose comme ça, pour que vous puissiez accéder aux éléments dans votre balisage ASPX:

public Item[] DataItems { get; set; } 

protected void Page_Load(object sender, EventArgs e) 
{ 
    // get your list 
    DataItems = new[] 
        { 
         new Item{ ApplicationName = "Test", Url = new Uri("http://test.com/Home")}, 
         new Item{ ApplicationName = "Test", Url = new Uri("http://test.com")}, 
         new Item{ ApplicationName = "Test 2", Url = new Uri("http://test2.com/Home")}, 
         new Item{ ApplicationName = "Test 2", Url = new Uri("http://test2.com/")}, 
        }; 
} 

ensuite dans votre fichier ASPX, il suffit de jeter dans certains LINQ dans le mélange pour effectuer l'opération de regroupement :

<ul> 
<% foreach (var aggregateItem in (from item in DataItems 
            group item by item.ApplicationName 
            into groupedItem 
            select new { Name = groupedItem.Key, Items = groupedItem })) %> 
<% { %> 

    <li><strong><%= aggregateItem.Name%></strong> 
     <ul> 
      <% foreach (var subItem in aggregateItem.Items) %> 
      <% { %> 
       <p> 
        <a href="<%= subItem.Url %>"><%= subItem.Url %></a> 
       </p> 
      <% } %> 
     </ul> 
    </li> 
<% } %> 
</ul>