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

时间:2015-05-19 16:47:52

标签: c# asp.net web

我正在建立在线购物网站,我有一个管理页面,我可以在其中添加数据库中的产品。现在,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); 

}

1 个答案:

答案 0 :(得分: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;
}