1Future Ответов: 1

Как перечислить данные, полученные из таблицы в веб-форме страницы aspx


>Я вроде как новичок в веб-формах, но надеюсь, что кто-нибудь из Вас сможет посоветовать мне, как с этим справиться:

У меня есть следующая таблица в базе данных:

ID | имя / ParentId
1 / музыка / 0
2 / дом | 1
3 / urban | 1
4 / игры / 0
5 / ps4 / 4
2 / Xbox | 4

*код aspx-странице :
Я просто возвращаю список таблицы вот так:


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

*страница ASPX:
на этой странице мне нужно перечислить все события в таблице.
например, мне нужно перечислить родительское событие и его дочерние события ниже .
* музыка (родитель)
дом
городской
* игры (родительские)
ps4
для Xbox

Это то, что я сделал до сих пор.
Как я уже упоминал, я новичок в веб-формах , но у меня есть опыт работы в MVC, поэтому я пытаюсь использовать страницу Aspx так же, как и в представлении в MVC.
У меня есть такой стол:

<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>

Не мог бы кто-нибудь подсказать мне, как я буду перечислять события так, как я сказал выше?
Я не уверен, что лучший вариант был бы для меня, чтобы достичь этого в веб-формах.

Что я уже пробовал:

Цитата:
<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>

1 Ответов

Рейтинг:
8

Richard Deeming

Попробуйте что-нибудь вроде этого:

С фоновым кодом:

public IQueryable<EventsTable> GetTopLevelEvents()
{
    return db.EventsTable.Where(e => e.ParentId == 0);
}

public IQueryable<EventsTable> GetChildEvents(EventsTable parent)
{
    return db.EventsTable.Where(e => e.ParentId == parent.Id);
}

Разметка:
<asp:ListView runat="server" SelectMethod="GetTopLevelEvents" ItemType="YourNamespace.EventsTable">
<LayoutTemplate>
    <table class="table">
    <thead>
        <tr>
            <th>Event</th>
            <th>Edit</th>
        </tr>
    </thead>
    <tbody>
        <tr id="itemPlaceholder" runat="server"/>
    </tbody>
    </table>
</LayoutTemplate>
<ItemTemplate>
    <tr>
        <th>* <%#: Item.Name %></th>
        <td>
            <a>Edit</a>
        </td>
    </tr>
    
    <asp:ListView runat="server" DataSource='<%# GetChildEvents(Item) %>' ItemType="YourNamespace.EventsTable">
    <ItemTemplate>
        <tr>
            <th><%#: Item.Name %></th>
            <td>
                <a>Edit</a>
            </td>
        </tr>
    </ItemTemplate>
    </asp:ListView>
</ItemTemplate>
</asp:ListView>

Привязка моделей и веб-формы в Visual Studio 2013 | Microsoft Docs[^]
Класс ListView / Microsoft Docs[^]


1Future

Мне кажется, ты только что спас мне жизнь ! Огромное спасибо!