repeater 分列显示以及布局的实例代码

  前台

  

复制代码 代码如下:

  <div>

  <table>

  <tr>

  <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">

  <ItemTemplate>

  <td>

  <table>

  <tr>

  <td colspan="2">

  <img src='<%#"images/"+Eval("FoodPicture") %>' />

  </td>

  </tr>

  <tr>

  <td colspan="2">

  <asp:Label ID="Label1" runat="server" Text='<%#Eval("FoodName") %>'></asp:Label>

  </td>

  </tr>

  <tr>

  <td>

  <asp:Label ID="Label2" runat="server" Text=' <%#Eval("FoodPrice") %>'></asp:Label>

  </td>

  <td>

  <input type="image" src="images/product_add.png" onclick="product_add() " />

  <%--    <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="images/product_add.png" />--%>

  <asp:TextBox ID="TextBox1" Text="1" runat="server" Width="15px" ReadOnly="True"></asp:TextBox>

  <input type="image" src="images/product_reduce.png" onclick="product_reduce()" />

  <%--<asp:ImageButton ID="ImageButton2" runat="server" ImageUrl="images/product_reduce.png" />--%>

  </td>

  </tr>

  <tr>

  <th colspan="2">

  <asp:ImageButton ID="ImageButton3" ImageUrl="images/btn_order.gif" runat="server" />

  </th>

  </tr>

  </table>

  </td>

  </ItemTemplate>

  </asp:Repeater>

  </tr>

  </table>

  </div>

  后台

  

复制代码 代码如下:

  public   int i = 1;               

  protected void Page_Load(object sender, EventArgs e)

  {

  string sqlstr = @"data source=PC-LENOVE\SQLEXPRESS;initial catalog=KFC;USER ID=SA;PASSWORD=abing520";

  SqlConnection con = new SqlConnection(sqlstr);

  SqlCommand cmd = new SqlCommand();

  cmd.CommandText = "SELECT * FROM Foods";

  cmd.Connection = con;

  SqlDataAdapter adapter = new SqlDataAdapter(cmd);

  DataTable dt = new DataTable();

  adapter.Fill(dt);

  cmd.Dispose();

  con.Dispose();

  this.Repeater1.DataSource = dt;

  this.Repeater1.DataBind();

  }

  protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)

  {

  if (i % 4 == 0)//4是一行显示列数

  {

  e.Item.Controls.Add(new LiteralControl("</tr><tr>"));

  }

  i++;

  }