【问题标题】:insert data from a DataTable into a dropdown将 DataTable 中的数据插入下拉列表
【发布时间】:2012-10-31 16:44:18
【问题描述】:

我想用datatable填写dropdown
bcoz 我已经在 bal 中有一个方法 GetCate(),它返回 datatable,现在想用一些 datasourcedatabind 脚​​本将数据动态填充到 ddl 中,这可能吗???

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

public void BindCateDDL()
{

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

这是正确的做法吗???

【问题讨论】:

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


    【解决方案1】:

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

    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();
    }
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2017-12-02
        • 2013-08-20
        • 1970-01-01
        • 1970-01-01
        • 2011-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多