从 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>
<%}%>
网。我想要一个类似 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>
<%}%>