我有一个带有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个项目,其中一个已经检查过。
答案 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>