1

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

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

4

2 回答 2

0

Repeater使用 Web 表单,这将是使用控件最容易解决的问题。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.aspx

于 2013-06-21T13:08:58.963 回答
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>
于 2013-06-21T13:23:57.373 回答