2016-04-20 3 views
1

Я динамически создаю DIVs, который будет извлекать данные из моей таблицы sql (из каждой строки) и покажет его в DIV. Какие проблемы я столкнулся есть, это только показывает последняя строка моей таблицы SQL в виде сНу Здесь есть HTMLСоздание динамического DIV в asp .net C#

<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++; 
       } 
      } 
     } 
     } 
+0

Вы используете ** ASP.NET ** 'WebForms'? –

ответ

2

Попробуйте использовать 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") %>' выражения в разметка, где это необходимо.

+0

Это сработало .. Спасибо @DavidPine – Ammar