asp.net ListItem:“Value”属性返回“Text”属性

时间:2013-11-19 18:43:09

标签: c# asp.net winforms listitem

在Windows Forms 4.5中,我使用一个简单的ListBox,并在代码隐藏中动态添加项目,如下所示:

for (int i = 0; i < rawshows.Count; i++)
{
    var item = rawshows[i];
    if (/* some comparisons I will not bore you with */)
    {
        ListItem li = new ListItem(item.ShowName, i.ToString());
        shows.Add(li);
    }
}
lbShows.DataSource = shows;
lbShows.DataBind();

如您所见,元素的文本设置为item.ShowName(这是一个字符串),值设置为i计数器的值。

一切似乎都很好,列表正确填充。问题是当我从列表中检索所选项目时。这样:

lbShows.SelectedItem.Value

评估与

相同的值
lbShows.SelectedItem.Text

(其中lbShows是listBox)。基本上他们都会评估节目名称,而不是填写列表时我设置的数字。

关于我做错的任何线索?

1 个答案:

答案 0 :(得分:1)

在调用.DataBind()之前指定DataTextField和DataValueField

        lbShows.DataTextField = "TextColumnName";
        lbShows.DataValueField = "ValueColumnName";