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 に答える