1

我有以下代码:

foreach (ListItem item in lstCreate.Items)
{
    if (item.Selected)
        strCreateNewVideoCategory += item.Value + ":0,";
    else
        strCreateNewVideoCategory += item.Value + ":1,";
}

我正在使用这个程序,item.Selected 每次都是假的,即使我从项目列表中选择一个项目。我做错了什么?

注意:ListItem 使用用户控件(ascx)。

4

4 回答 4

6
  1. 您必须尝试使用​​此代码进行绑定

    if (!IsPostback)
    { 
        BindYourControl();
    }
    

    因为您每次发布时都加载并绑定控件,所以您删除了选定的值

  2. 使用 ViewState 来保持。

    EnableViewState = true;
    
于 2012-07-30T12:03:37.310 回答
0

代码对我来说看起来不错。您应该尝试设置断点以真正查看哪里出错了。

于 2012-07-30T12:06:49.710 回答
0

检查您的自动回发事件以进行页面加载和所选项目的使用

 listitem_selectedindexchanged()
{
}

它会给你所选项目的价值

于 2012-07-30T12:07:38.180 回答
0

反正,

foreach (ListItem item in lstCreate.Items)
{
    str += item.Value + item.Selected ? ":0," : ":1,";
}

或更好

str = String.Join(
    ",",
    lstCreate.Items.Cast<ListItem>.Select(item => item.Value + item.Selected ? ":0" : ":1");
于 2012-07-30T12:08:16.137 回答