2015-05-19 33 views
0

我正在建設在線購物網站,我有一個管理頁面,可以在其中添加數據庫中的產品。現在,My Exact是我在Product.aspx頁面中加載動態值的問題,但值正在以單元格的形式添加Horizo​​ntally。 我想在asp.table中添加行,之後每隔4個單元格。 請幫我和對不起我的英語。在表中動態加載數據庫值asp.net

這是一段代碼。

private void Displaying_Products() 
     { 
      DataSet ds = obj.searching_product(); 
      DataTable dt = new DataTable(); 
      dt = ds.Tables["Register_Product"]; 

      TableRow row = new TableRow(); 


      foreach (DataRow dr2 in dt.Rows) 
      { 


       TableCell cell = new TableCell(); 
       name = dr2["Name"].ToString(); 
       des = dr2["Description"].ToString(); 
       price = dr2["Price"].ToString(); 
       Button btn = new Button(); 
       btn.Height = 19; 
       btn.Width = 100; 
       btn.Text = "Add to Cart"; 


       Label lbl = new Label(); 
       lbl.Text = "Brand : " + name + " <br /> " + "Description : " + des + " <br /> " + "Price :" + price + " <br /> " + " <br /> "; 
       cell.Controls.Add(lbl); 

       cell.Controls.Add(btn); 


       cell.Width = 100; 
       cell.Height = 200; 
       row2.Cells.Add(cell); 


      } 

      image_table.Rows.Add(row2); 

}

回答

0

簽出GridView control

事情是這樣的:

<asp:GridView runat="server" AutoGenerateColumns="false" ID="gridView1"> 
    <Columns> 
     <asp:BoundField HeaderText="Name" DataField="Name" /> 
     <asp:BoundField HeaderText="Description" DataField="Description" /> 
     <asp:TemplateField HeaderText="Price"> 
      <ItemTemplate> 
       <%# ((decimal)Eval("Price")).ToString("c") %> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:Button runat="server" Text="Add to Cart" ID="AddToCartBtn" OnClick="AddToCartBtn_Click" CommandArgument='<%# Eval("Id") %>' /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

您的代碼隱藏看起來類似於這樣:

gridView1.DataSource = ds.Tables["Register_Product"]; 
gridView1.DataBind(); 

如果您想繼續使用較難的方式(創建表本身),那麼您需要在foreach循環內移動表格行創建語句。

編輯:

如果你希望把所有的產品信息(名稱,描述,價格)在一個表格單元格,並有4個產品,每行,那麼你就需要添加你的foreach環這樣的計數器:

int i = 1; 
TableRow row = new TableRow(); 
foreach (DataRow dr2 in dt.Rows) 
{ 
    if (i == 1) 
     row = new TableRow(); 
    // .. further processing 
    i++; 
    if (i > 4) 
     i = 1; 
}