从 ASP.Net 中的数据库填充卡片视图

Populating card view from database in ASP.Net

网。我想要一个类似 recyclerview 的东西,你在 aspx 文件中有 1 张卡片,它根据数据库中的条目数不断重复出现。因此,如果我的数据库 table 假设有 3 个特定名称的条目,那么页面中应该有 3 张卡片。

这是我到目前为止所做的: 在我的 .aspx 文件中:

<div class="item-card9">
<a href="info_page.aspx" class="text-dark">
  <h4 class="font-weight-semibold mt-1">
     <asp:Label ID="Label1" runat="server" >
        <%# uni_name %>
     </asp:Label>
  </h4>
</a>
</div>

还有我的aspx.cs:-

    public string uni_name;
    SqlCommand cmd = new SqlCommand();

    //SQL connection here

    protected void Page_Load(object sender, EventArgs e)
    {
        con.Open();
        cmd.CommandText = //select statement here
        cmd.Connection = con;
        SqlDataReader rd = cmd.ExecuteReader();
        while (rd.Read())
        {
            uni_name = rd["name"].ToString();
        }
        this.DataBind();

        con.Close();
    }

到目前为止,我只能从我的数据库中获取 1 个条目,但我希望它一直重复出现,直到数据库结束。

您需要某种数组来显示:

CS

public List<string> Names { get; set; }

protected void Page_Load(object sender, EventArgs e)
{
    con.Open();
    cmd.CommandText = //select statement here
    cmd.Connection = con;
    SqlDataReader rd = cmd.ExecuteReader();
    Names = new List<string>();
    while (rd.Read())
    {
        Names.Add(rd["name"].ToString());
    }
    this.DataBind();

    con.Close();
}

ASP

 <%foreach (var name in this.Names)
  {%>
       <p><%=name%></p>
   <%}%>

更新。 如果你有一个复杂的对象,比如

class MyObj
{
    public string ID;
    public string Name;
}

你仍然可以在这里使用它而不是字符串。

public List<MyObj> Items{ get; set; }

protected void Page_Load(object sender, EventArgs e)
{
    con.Open();
    cmd.CommandText = //select statement here
    cmd.Connection = con;
    SqlDataReader rd = cmd.ExecuteReader();
    Items = new List<MyObj>();
    while (rd.Read())
    {
        var item = new MyObj
        {
             Name = rd["name"].ToString(),
             Id = rd["id"].ToString()
        };
        Names.Add(item);
    }
    this.DataBind();

    con.Close();
}

然后像这样使用它

 <%foreach (var item in this.Items)
  {%>
       <p><%=item.Id%> <%=item.Name%></p>
   <%}%>