动态扩展列表框行以适应数据源?

时间:2012-09-16 02:12:01

标签: asp.net listbox

我有一个列表框,我从SQL DB中的表中动态填充,我想动态地将列表框的行设置为表中的记录数量,因此不需要滚动。除了将表信息添加到本地数据表并计算其中的行之外,还有一种简单的方法吗?这是我对列表框的绑定的代码:

        List<ParameterList> Parameters = new List<ParameterList>();
    Parameters.Add(new ParameterList() { Name = "CategoryName", Value = CategoryName });

    lbCategory.DataSource = SQLHelper.GetDataByQuery("SELECT SectionID, SectionTitle FROM dbo.vwNavigationMenuItems WHERE CategoryName = @CategoryName ORDER BY MenuPosition ASC", Parameters);
    lbCategory.DataTextField = "SectionTitle";
    lbCategory.DataValueField = "SectionID";
    lbCategory.DataBind();

1 个答案:

答案 0 :(得分:0)

试试这个

System.Data.DataTable dt = SQLHelper.GetDataByQuery("SELECT SectionID, SectionTitle FROM dbo.vwNavigationMenuItems WHERE CategoryName = @CategoryName ORDER BY MenuPosition ASC", Parameters);
lbCategory.DataSource = dt;
...
...

lbCategory.Rows = dt.Rows.Count;

或者在绑定数据后,您可以尝试

lbCategory.Rows = lbCategory.Items.Count;

我不知道任何其他更简单的方式