【问题标题】:Population of ComboBox with DisplayMember and ValueMember具有 DisplayMember 和 ValueMember 的 ComboBox 的数量
【发布时间】:2011-11-12 19:58:59
【问题描述】:

我正在尝试像这样填充 Combox:

        DataSet ds = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter("SELECT id,name FROM table1", con);
        da.Fill(ds, "FillDropDown");

        comboProject.DisplayMember = "FillDropDown.name";
        comboProject.ValueMember = "FillDropDown.id";
        comboProject.DataSource = ds.Tables["FillDropDown"];

但所有项目在组合框中都显示为“System.Data.DataRowView”。为什么会这样? 提前致谢。

【问题讨论】:

  • 警告。使用 DisplayMember = "name",可能会在 dotfuscating 时出现故障。因为它不再被称为“名称”。

标签: c# asp.net combobox


【解决方案1】:

试试这个:

DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("SELECT id,name FROM table1", con);
da.Fill(ds, "FillDropDown");

comboProject.DisplayMember = "name";
comboProject.ValueMember = "id";
comboProject.DataSource = ds.Tables["FillDropDown"];
comboProject.DataBind();

【讨论】:

    【解决方案2】:
    try  comboProject.DataSource = ds.Tables["FillDropDown"].DefaultView;
    

    【讨论】:

    • @Pranav 试试这个 comboProject.DataSource = ds.Tables["FillDropDown"].DefaultView;comboProject.DisplayMember = "name"; comboProject.ValueMember = "id";
    • 实际上我尝试了..只是从显示和值成员中删除表名它工作正常..但为什么会这样..无论如何谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多