C# 从checkboxlist c中获取未选中的列表项值#

C# 从checkboxlist c中获取未选中的列表项值#,c#,asp.net,checkboxlist,C#,Asp.net,Checkboxlist,在下面的示例中,checkboxlist列出了6个列表项,如果我取消选中任何项,我应该能够得到未选中的值 <asp:CheckBoxList id="chkbxFileTypes" runat="server" OnSelectedIndexChanged="chkbxFileTypes_SelectedIndexChanged" AutoPostBack=true> <asp:ListItem>Item 1</asp:ListItem> &

在下面的示例中,checkboxlist列出了6个列表项,如果我取消选中任何项,我应该能够得到未选中的值

 <asp:CheckBoxList id="chkbxFileTypes" runat="server" OnSelectedIndexChanged="chkbxFileTypes_SelectedIndexChanged" AutoPostBack=true>
    <asp:ListItem>Item 1</asp:ListItem>
    <asp:ListItem>Item 2</asp:ListItem>
    <asp:ListItem>Item 3</asp:ListItem>
    <asp:ListItem>Item 4</asp:ListItem>
    <asp:ListItem>Item 5</asp:ListItem>
    <asp:ListItem>Item 6</asp:ListItem>
    </asp:CheckBoxList>

项目1
项目2
项目3
项目4
项目5
项目6
如果我取消选中Item1列表项,我需要获得相同的值

我应该使用哪个事件,因为现在我使用选定的索引更改,它只给我选定的值而不是未选定的值


请在您的代码中提供帮助,您可以处理事件
chkbxFileTypes\u SelectedIndexChanged
,如:

protected void chkbxFileTypes_SelectedIndexChanged(object sender, EventArgs e)
        {
           List<ListItem> selected = chkbxFileTypes.Items.Cast<ListItem>()
          .Where(li => ! li.Selected)
          .ToList();
        }
protectedvoid chkbxFileTypes\u SelectedIndexChanged(对象发送方,事件参数e)
{
所选列表=chkbxFileTypes.Items.Cast()
.Where(li=>!li.Selected)
.ToList();
}
或者用一个简单的foreach:

  List<string> selectedValues = chkbxFileTypes.Items.Cast<ListItem>()
         .Where(li => ! li.Selected )
         .Select(li => li.Value)
         .ToList();
List selectedValues=chkbxFileTypes.Items.Cast()
.Where(li=>!li.Selected)
.Select(li=>li.Value)
.ToList();

在代码隐藏中,您可以处理事件
chkbxFileTypes\u SelectedIndexChanged
如:

protected void chkbxFileTypes_SelectedIndexChanged(object sender, EventArgs e)
        {
           List<ListItem> selected = chkbxFileTypes.Items.Cast<ListItem>()
          .Where(li => ! li.Selected)
          .ToList();
        }
protectedvoid chkbxFileTypes\u SelectedIndexChanged(对象发送方,事件参数e)
{
所选列表=chkbxFileTypes.Items.Cast()
.Where(li=>!li.Selected)
.ToList();
}
或者用一个简单的foreach:

  List<string> selectedValues = chkbxFileTypes.Items.Cast<ListItem>()
         .Where(li => ! li.Selected )
         .Select(li => li.Value)
         .ToList();
List selectedValues=chkbxFileTypes.Items.Cast()
.Where(li=>!li.Selected)
.Select(li=>li.Value)
.ToList();
使用“\uuu EVENTTARGET”表单元素查找目标的索引复选框,然后检查其是否未选中。如果未选中,则获取其值



使用“\uuu EVENTTARGET”表单元素查找目标的索引复选框,然后检查其是否未选中。如果未选中,则获取其值。

您希望在服务器上还是在客户端?服务器上处理此问题?我没有使用javascript,而是纯asp.net控件。您希望在服务器上还是在客户端?服务器上处理此问题?我没有使用javascript,只是纯asp.net控件。这很难阅读,有关如何设置帖子格式的详细信息,请参见此。例如:有4个列表项A、B、C、D,A&B处于选中状态,如果我尝试取消选中B,则我应该能够在不循环的情况下获得B的值。。有可能吗?这很难阅读,请参阅此以了解有关如何设置帖子格式的详细信息。例如:有4个列表项A、B、C、D和A&B处于选中状态,如果我尝试取消选中B,那么我应该能够在不循环的情况下获得B的值。。是否可能?例如:有4个列表项A、B、C、D,A和B处于选中状态,如果我尝试取消选中B,那么我应该能够在不循环的情况下获得B的值。。是否可能?例如:有4个列表项A、B、C、D,A和B处于选中状态,如果我尝试取消选中B,那么我应该能够在不循环的情况下获得B的值。。是否可能?例如:有4个列表项A、B、C、D,A和B处于选中状态,如果我尝试取消选中B,那么我应该能够在不循环的情况下获得B的值。。可以吗?是的,可以使用我的代码。这对我来说很有效。你能分享CheckboxList的html吗?我会再试一次,无论如何,谢谢。。将更新您我的复选框列表在中继器中。。是因为那个吗?是的,可能是因为那个。你能分享checkboxlistFor的html吗例如:有4个列表项A、B、C、D和A&B处于选中状态,如果我尝试取消选中B,那么我应该能够在不循环的情况下获得B的值。。可以吗?是的,可以使用我的代码。这对我来说很有效。你能分享CheckboxList的html吗?我会再试一次,无论如何,谢谢。。将更新您我的复选框列表在中继器中。。是因为那个吗?是的,可能是因为那个。你能分享checkboxlist的html吗
protected void chkbxFileTypes_SelectedIndexChanged(object sender, EventArgs e)
    {
        string eventTarget = Request.Form.Get("__EVENTTARGET");
        int index = Convert.ToInt32(eventTarget.Substring(eventTarget.Length-1));
        bool isUnchecked = !chkbxFileTypes.Items[index].Selected;
        if (isUnchecked)
        {
            string value = chkbxFileTypes.Items[index].Value;
        }
    }