将数据从DataTable插入下拉列表

时间:2012-10-31 16:44:18

标签: asp.net sql-server datatable dataset datasource

我希望用dropdown填充datatable bcoz我已经在bal中使用方法GetCate(),返回datatable,现在想要将数据动态填充到ddl,其中包含datasourcedatabind脚本,可能吗???

为什么不能将数据表分配到下拉列表中

public void BindCateDDL()
{

    DataTable dt = new BALCate().GetCate();        
    ddl_filter_category_id.DataSource = dt;
    ddl_filter_category_id.DataBind();
}

这是一种正确的方法吗?

2 个答案:

答案 0 :(得分:2)

有几种方法可以做到这一点:

1)在每次迭代中创建一个新的listItem,添加详细信息并将其添加到DDL中:

public void BindCateDDL()
{
    //DropDownList ddl;
    DataTable dt = new BALCate().GetCate();
    foreach (DataRow dr in dt.Rows)
    {
        ListItem l = new ListItem();
        l.text = dr["colForName"].ToString();
        l.value = dr["colForValue"].ToString();
        ddl.items.add(l);
    }
}

2)将数据表作为数据源添加到DropDownList并设置DataTextFieldDataValueField属性:

public void BindCateDDL()
{
    //DropDownList ddl;
    DataTable dt = new BALCate().GetCate();
    ddl.DataSource = dt;
    ddl.DataTextField = "colForName";
    ddl.DataValueField = "colForValue";
    ddl.DataBind();
}

答案 1 :(得分:1)

您所要做的就是将下拉列表绑定到数据表,如下所示;

ddl.DataTextField = "ColumnName1";
ddl.DataValueField = "ColumnName2"
ddl.DataSource = dt;
ddl.DataBind()