C#ASPX CheckListbox值在哪里

时间:2011-10-31 18:34:56

标签: c# visual-studio-2010

我有一个带有CheckListBox的ASPX C#页面。 使用以下代码确定是否已选中该项,并且它始终为false。

if (lstFiles.Items[i].Selected)

我尝试了lstFiles.Items[i].CheckedItems,但这不是有效的属性。我也试过了 我试过了lstFiles.Items[i].SelectedItems,但这也不是一个有效的属性。

我认为VS2010很困惑,但我不知道在哪里。

----好的,他们点击我的CheckBoxList控件中的一个框,所有应该发生的是检查框是否等待他们选择另一个项目。然后用户单击“删除”按钮,执行此代码。

`protected void btnDelete_Click(object sender, EventArgs e)
     {
         foreach (ListItem i in lstFiles.Items)
         {
             if (i.Selected)
             {
                 string filename = i.Value.ToString();
                 DeleteFTP(filename);
             }
         }

        string[] filenames = GetFileList();
        lstFiles.Items.Clear();


        foreach (string filenamel in filenames)
        {
            lstFiles.Items.Add(filenamel);
        }
     }`    

---在所有情况下i.Selected = False,我有2个项目,其中一个已经检查过。

2 个答案:

答案 0 :(得分:0)

我的错误 - 我发现你正在使用网页控件。

以下内容对我有用: 标记

<asp:CheckBoxList ID="checkBoxList1" runat="server" AutoPostBack="true">
    <asp:ListItem Text="Test 1" Value="1" />
    <asp:ListItem Text="Test 2" Value="2" />
    <asp:ListItem Text="Test 3" Value="3" />
</asp:CheckBoxList>

<asp:Button ID="btnTest" runat="server" Text="Go!" OnClick="btnTest_click" />

背后的代码

protected void btnTest_click(object sender, EventArgs e)
{
   foreach (ListItem li in checkBoxList1.Items)
   {
       if (li.Selected)
       {
           //item is selected
       }
   }
}

答案 1 :(得分:0)

正如glosrob所说,检查所有CheckBoxList组合的简单方法是:

foreach (ListItem i in CheckBoxList1.Items)
{
    if (i.Selected)
    { 
        //do stuff
    }
}

看起来你不使用这个控件本身,但是它的项目让你很困惑。因此,您无法查看是否选中了CheckBoxList:

<asp:CheckBoxList ID="CheckBoxList1" runat="server">
    <asp:ListItem Selected="True" Value="1">a</asp:ListItem>
    <asp:ListItem Value="2">b</asp:ListItem>
    <asp:ListItem Value="3">c</asp:ListItem>
</asp:CheckBoxList>