我在SQL Server中有一个表,它提供了产品列表(PRODUCT)和产品类别(CAT)。现在我将所有产品放在同一个ListBox中:
foreach (DataRow row in ds.Tables["ProductsTbl"].Rows) { string str = string.Format("{0}", row["PRODUCT"]); ListBox1.Items.Add(new ListItem(str)); }
但我需要创建与类别一样多的列表框,并根据类别分发这些产品。可能会添加或删除类别,因此我需要动态创建它们。
因此,假设该表在类别1中有5个产品,在类别2中有4个产品,在类别3中有7个产品,我需要创建3个列表框。第一个有5个项目,第二个有4个项目,最后一个有7个项目。有任何想法吗 ? THX。
答案 0 :(得分:1)
ProductsTbl
categoryId
数据集
categoryId
这样的事情:
var catId = ds.Tables["ProductsTbl"].Rows[0].categoryId;
var listBox = ListBox1;
foreach (DataRow row in ds.Tables["ProductsTbl"].Rows)
{
if(catId != row.categoryId)
{
catId = row.categoryId;
listBox = new ListBox();
Panel1.Controls.Add(listBox);
}
string str = string.Format("{0}", row["PRODUCT"]);
listBox.Items.Add(new ListItem(str));
}
答案 1 :(得分:0)
您甚至可以创建一个控件,使您能够调整外观,然后创建它的新实例,就像Joshia的代码一样。
http://knol.google.com/k/creating-custom-controls-with-c-net#
以上是自定义控件的示例