在 asp .net c# 中创建动态 DIV

Creating dynamic DIV in asp .net c#

我正在动态创建 DIV,它将从我的 sql table(从每一行)获取数据并将其显示在 DIV 中。我面临的问题是,它仅以 div 形式显示我的 sql table 的最后一行 这是 html

<div ID = "containerDiv" class="container" runat = "server">
  <div ID = "columnDiv" class="col-md-3 col-sm-4" runat = "server">
     <div ID = "textDiv" class="text" runat="server">
     </div>
   </div>
</div>

这是cs代码

static int count = 0;
    protected void Page_Load(object sender, EventArgs e)
    {

        string CS = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
        using (SqlConnection con = new SqlConnection(CS))
        {
            using (SqlCommand cmd = new SqlCommand("SELECT * FROM tblProducts"))
            {
                cmd.Connection = con;
                con.Open();
                SqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    columnDiv.ID = "columnDiv" + count;
                    textDiv.ID = "textDiv" + count;
                    string name = rdr["prod_name"].ToString();
                    string price = rdr["prod_price"].ToString();


                    textDiv.InnerHtml = name + "   " + price;

                    columnDiv.Controls.Add(textDiv);

                    containerDiv.Controls.Add(columnDiv);
                    count++;
                }
            }
         }
      }

尝试使用 Repeater,像这样 (here's the MSDN):

<asp:Repeater ID="Repeater1" runat="server">
      <ItemTemplate>
          <div ID="containerDiv" class="container" runat = "server">
              <div ID="columnDiv" class="col-md-3 col-sm-4" runat = "server">
                  <div ID="textDiv" class="text" runat="server">
                  </div>
              </div>
          </div>
      </ItemTemplate>
</asp:Repeater>

并在服务器的后台代码中提供 DataSource,并在适当的标记中添加 '<%# Eval("ColumnName") %>' 表达式。

标准方法是使用 GridView:

https://msdn.microsoft.com/en-us/library/aa479342.aspx