2017-08-21 1 views
0

Je suis une sorte de nouveau à des formes Web, mais j'espère que quelqu'un d'entre vous serait en mesure de me conseiller sur la façon d'aborder ce:Comment lister les données extraites d'une table sous forme de page web Aspx

Je la tableau suivant dans la base de données:

ID | Name | ParentId 
1 | music | 0 
2 | house | 1 
3 | urban | 1 
4 | games | 0 
5 | ps4 | 4 
2 | Xbox | 4 

le code * derrière la page ASPX: Je suis juste retour une liste de la table ici comme ceci:

protected List<EventsTable> events; 
    events = db.EventsTable.ToList(); 

* Aspx page: sur cette page je dois lister tous les événements dans le tableau. par exemple; J'ai besoin de répertorier un événement parent et ses événements enfants ci-dessous. i.e. * musique (parent) maison urbain * jeux (parent) PS4 xbox

C'est ce que je l'ai fait jusqu'à présent. Comme je l'ai mentionné je suis nouveau sur les formulaires Web, mais j'ai de l'expérience dans MVC, donc j'essaie d'utiliser la page Aspx comme je le ferais dans une vue dans MVC. J'ai une table comme ceci:

<table class="table"> 
         <tr> 
          <th>Event</th> 
           <th>Edit</th> 
         </tr> 

        <%foreach(var s in events) {%> 
         <tbody> 
           <tr> 
          <%if (s.ParentId == 0) 
           {%> 
            <td> * <%= s.Name %></td> 
           <%} %> 

            <td> <%= s.Name %></td> 
           <td> <a> Edit</a></td> 
          </tr> 
         </tbody> 


        <%}%> 

         </table> 

Quelqu'un pourrait-il s'il vous plaît me diriger sur la façon dont je m'y prendrais dans la liste des événements de la façon dont je l'ai dit ci-dessus? Je ne suis pas sûr de ce que la meilleure option serait pour moi de réaliser cela dans les formulaires Web.

+0

Je dirais que mettre un GridView sur la page et se lient 'events' à lui. – VDWWD

+0

Pouvez-vous montrer un exemple de cela? Par exemple, comment est-ce que je mettrais un "*" devant un parent quand j'utilise la vue de la grille. – 1future

Répondre

0

Voici un exemple de GridView qui est sûr pour le type et montre comment vous pouvez ajouter un * devant le nom. ItemType est l'espace de noms complet de la classe dans la liste liée à GridView.

<asp:GridView ID="GridView1" runat="server" CssClass="table" ItemType="Namespace1.Default1.Event" AutoGenerateColumns="false"> 
    <Columns> 
     <asp:TemplateField HeaderText="Event"> 
      <ItemTemplate> 
       <%# Item.ParentId == 0 ? "*" : "" %> 
       <%# Item.Name %> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Edit"> 
      <ItemTemplate> 
       <%# Item.ID %> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 
code

derrière

public List<Event> events = new List<Event>(); 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     //some dummy data 
     for (int i = 0; i < 10; i++) 
     { 
      Event ev = new Event() { ID = i, Name = "naam" + i, ParentId = 0 }; 
      events.Add(ev); 
     } 

     GridView1.DataSource = events; 
     GridView1.DataBind(); 
    } 
} 


public class Event 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    public int ParentId { get; set; } 
}