我是asp.net(网络表单)的新手,希望从数据库中获取一些信息,然后以帖子的形式显示此信息,如标题,段落和图像。如果数据库中有三行,则会有三个帖子。我在.aspx文件
中使用asp.net代码完成了这个 <%
while (reader.Read())
{ %>
<article class="col1">
<h2><%= reader.GetValue(0).ToString()%></h2>
<p class="pad_bot1"><%= reader.GetValue(1).ToString()%></p>
<img src="<%= reader.GetValue(2).ToString() %>" class="img" alt="">
</article>
<% } reader.Close(); %>
但我在某处读到代码必须分开,并且应该用.aspx.cs文件编写。这样做的方法是什么?将id分配给h和p标签,然后为它们分配如下值:
while (reader.Read())
{
h.InnerText = reader.GetValue(0).ToString();
p.InnerText = reader.GetValue(1).ToString();
}
但这并没有解决问题,因为帖子不会在循环中显示,即3次。
我想知道一个最合适的解决方案,提前谢谢
答案 0 :(得分:0)
使用网络表单,使用Repeater
控件最容易解决。
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.aspx
答案 1 :(得分:0)
这是我可以根据需要修改的代码
背后的代码
// Here's your object that you'll create a list of
private class Products
{
public string ProductName { get; set; }
public string ProductDescription { get; set; }
public string ProductPrice { get; set; }
}
// Here you pass in the List of Products
private void BindItemsInCart(List<Products> ListOfSelectedProducts)
{
// The the LIST as the DataSource
this.rptItemsInCart.DataSource = ListOfSelectedProducts;
// Then bind the repeater
// The public properties become the columns of your repeater
this.rptItemsInCart.DataBind();
}
Aspx代码
<asp:Repeater ID="rptItemsInCart" runat="server">
<HeaderTemplate>
<table>
<thead>
<tr>
<th>Product Name</th>
<th>Product Description</th>
<th>Product Price</th>
</tr>
</thead>
<tbody>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("ProductName") %></td>
<td><%# Eval("ProductDescription")%></td>
<td><%# Eval("ProductPrice")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</tbody>
</table>
</FooterTemplate>
</asp:Repeater>