我正在建立在线购物网站,我有一个管理页面,我可以在其中添加数据库中的产品。现在,My Exact是我在Product.aspx页面中动态加载值的问题,但是值以单元格的形式水平添加。 我想在asp.table中添加行,每隔4个单元格。 请帮帮我,抱歉我的英语。
这是代码片段。
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 :(得分:0)
这样的事情:
<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;
}