C# 所选列表项不工作

C# 所选列表项不工作,c#,asp.net,.net,C#,Asp.net,.net,我有以下代码: foreach (ListItem item in lstCreate.Items) { if (item.Selected) strCreateNewVideoCategory += item.Value + ":0,"; else strCreateNewVideoCategory += item.Value + ":1,"; } 我正在使用此过程,item.Selected每次都为false,即使我从项目列表中选择了一个项目

我有以下代码:

foreach (ListItem item in lstCreate.Items)
{
    if (item.Selected)
        strCreateNewVideoCategory += item.Value + ":0,";
    else
        strCreateNewVideoCategory += item.Value + ":1,";
}
我正在使用此过程,item.Selected每次都为false,即使我从项目列表中选择了一个项目。我做错了什么

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

  • 您必须尝试使用此代码进行绑定

    if (!IsPostback)
    { 
        BindYourControl();
    }
    
    因为每次发布时都会加载并绑定控件,所以会删除选定的值

  • 使用ViewState来持久化

    EnableViewState = true;
    
  • 您必须尝试使用此代码进行绑定

    if (!IsPostback)
    { 
        BindYourControl();
    }
    
    因为每次发布时都会加载并绑定控件,所以会删除选定的值

  • 使用ViewState来持久化

    EnableViewState = true;
    

  • 代码在我看来很好。你应该试着设置一个断点,看看哪里出了问题。

    我觉得代码不错。您应该尝试设置一个断点,以真正了解您的错误所在。

    检查您的自动回发事件以了解页面加载和所选项目的使用情况

     listitem_selectedindexchanged()
    {
    }
    

    它将为您提供所选项目的值

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

     listitem_selectedindexchanged()
    {
    }
    
    它将为您提供所选项目的值

    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");
    
    str=String.Join(
    ",",
    lstCreate.Items.Cast.Select(item=>item.Value+item.Selected?”:0“::1”);
    不管怎样

    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");
    
    str=String.Join(
    ",",
    lstCreate.Items.Cast.Select(item=>item.Value+item.Selected?”:0“::1”);
    
    在循环中串联字符串是一种不好的做法。如果列表相对较短,这可能不是一个严重的问题,但无论如何,我认为最好养成使用
    StringBuilder
    的习惯。在循环中串联字符串是一种不好的做法。如果列表相对较短,则可能不是序列号这是一个很好的问题,但不管怎样,我认为您最好养成使用
    StringBuilder
    的习惯。很抱歉,每次加载页面时我都初始化了控件。现在我用步骤1进行了更正:它现在可以正常工作了。谢谢,我很高兴帮助您karthikI不明白这一点,在何时何地使用
    BindYourControl()这是一个内置函数吗?很抱歉,每次加载页面时我都初始化了控件。现在我用步骤1进行了更正。现在工作正常了。谢谢。我很高兴帮助您karthikI不明白这一点,在何时何地使用
    BindYourControl();
    ?这是一个内置函数吗?