值与ListItem中的Text相同



我有这个代码

ListItem item=new ListItem();
item.Text="foo";
item.Value="1"; 
ListItem item2=new ListItem();
item2.Text="bar";
item2.Value="2";
List<ListItem> foobar=new List<ListItem>();
foobar.Add(item); foobar.Add(item2);
foreach(ListItem i in foobar)
{
  lblPrintInfo.Text+="Text:"+i.Text+" Value: "+i.Value;
}

我希望得到类似Text:foo Value:1 Text:bar Value:2的结果,但实际上我得到了Text:foo Value:foo Text:bar Value:bar。我哪里错了?

foreach(ListItem i in foobar)
{
    lbl.PrintInfo+="Text:"+i.Text+" Value: "+item.Value;
}

应该是:

foreach(ListItem i in foobar)
{
    lbl.PrintInfo+="Text:"+i.Text+" Value: "+i.Value;
}

i而不是item

您需要做的是设置DataValueFieldDataTextField属性:在listB.DataBind();调用之前添加这些行:

listB.DataTextField = "Text";
listB.DataValueField = "Value";

相关内容

最新更新