在表asp.net中动态加载数据库值
本文关键字:加载 数据库 动态 asp net 在表 | 更新日期: 2023-09-27 17:49:42
我正在建设网上购物网站,我有一个管理页面,我可以在数据库中添加产品。现在,我确切的问题是我在产品中加载动态值。aspx页面,但值以单元格的形式水平添加。我想在asp中添加行。表,每隔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);
}
查看GridView控件
像这样:
<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;
}