在表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); 

}

在表asp.net中动态加载数据库值

查看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;
}