在循环中创建下拉列表的最佳方法

时间:2012-05-12 08:17:24

标签: c# asp.net

我有两个数据库表,一个是类别表,第二个是类别值表。

对于每个类别,我需要创建一个包含第二个表值的下拉列表。 第二步是将这些动态创建的下拉列表放在类似于formview的组件中以更新,删除update并从填充了第三个db表的GridView中获取SelectedValue。

这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

如果不知道如何获取数据,很难给出准确的答案,但您可以考虑两种广泛的方法。 foreach循环遍历类别,将类别id传递给构建该类别下拉列表的函数。

foreach category in categories
{
  BuildDropDown(category.ID);
}

private void BuildDropDown(int id)
{
  var values = GetValuesByCategoryID(id)
  foreach value in values
  {
    ddl.Items.Add(new ListItem(value, value.Id));
  }
}

或者,另一种方法是在加载页面时获取所有数据。如果您的数据在2个表格中,那么:

SELECT * 
FROM tblCategory AS C 
INNER JOIN tblCategoryValue AS CV ON CV.FKCategoryID = C.CategoryID

然后调用它并迭代跟踪CategoryID,当它改变它发出新下拉的时间时。