如何解决从 ASP.Net 中的数据库填充卡片视图
网络。我想要一个类似于 recyclerview 的东西,其中 aspx 文件中有 1 张卡,它根据数据库中的条目数不断重复。因此,如果我的数据库表假设有 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>
<%}%>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。