1

我正在导出数据,现在一些字段导出值,而不是文本。因此,我将返回文本和值的对象保存到列表框中,并将其与来自对象的列表框中的值匹配,如下所示:

MaterialDB materials = new MaterialDB();
DropDownList listBoxMaterials = new DropDownList();
listBoxMaterials.DataSource = materials.GetItems(ModuleId, TabId);
listBoxMaterials.DataBind();

string materialString = "";


foreach (ListItem i in listBoxMaterials.Items)
{
    if (i.Value == row["MaterialTypeID"].ToString())
    {
        materialString = i.Text;
    }
}

当我将它用于 i.Value 时,它​​总是返回“System.Data.DataRowView”而不是实际值。我在后面的代码中做这一切。无论如何要让它工作?

谢谢!

4

1 回答 1

3

您需要设置 DropDownList 的 DataTextField 和 DataValueField 属性。例子:

MaterialDB materials = new MaterialDB();
DropDownList listBoxMaterials = new DropDownList();
listBoxMaterials.DataSource = materials.GetItems(ModuleId, TabId);
listBoxMaterials.DataTextField = "MaterialName";
listBoxMaterials.DataTextValue = "MaterialID";
listBoxMaterials.DataBind();

string materialString = "";    

foreach (ListItem i in listBoxMaterials.Items)
{
    if (i.Value == row["MaterialTypeID"].ToString())
    {
        materialString = i.Text;
    }
}
于 2012-07-18T14:26:08.863 回答