【问题标题】:How to list data retrieved from a table in Aspx page web form如何列出从 Aspx 页面 web 表单中的表中检索到的数据
【发布时间】:2017-08-21 11:19:32
【问题描述】:

我对网络表单有点陌生,但我希望你们中的任何人都能够就如何解决这个问题给我建议:

我在数据库中有下表:

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

*Aspx 页面后面的代码: 我只是在这里返回一个表格列表,如下所示:

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

*aspx 页面: 在此页面上,我需要列出表中的所有事件。 例如;我需要在下面列出一个父事件及其子事件。 IE *音乐(父母) 屋 城市的 *游戏(父母) ps4 盒子

这是我到目前为止所做的。 正如我提到的,我是 Web 表单的新手,但我在 MVC 方面有经验,所以我正在尝试像在 MVC 中的视图中一样使用 Aspx 页面。 我有一张这样的桌子:

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

有人可以指导我如何按照我上面所说的方式列出事件吗? 我不确定在网络表单中实现这一目标的最佳选择是什么。

【问题讨论】:

  • 我会说在页面上放置一个 GridView 并将 events 绑定到它。
  • 你能举个例子吗?即当我使用网格视图时,我将如何在父级前面放置一个“*”。

标签: asp.net webforms


【解决方案1】:

这里是一个类型安全的 GridView 示例,它展示了如何在名称前添加 *。 ItemType 是列表中绑定到 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>

后面的代码

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

【讨论】:

    猜你喜欢
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多