使用asp.net显示多个动态帖子

时间:2013-06-21 13:04:02

标签: asp.net webforms

我是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次。

我想知道一个最合适的解决方案,提前谢谢

2 个答案:

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