繁体   English   中英

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

[英]Get unchecked list item value from checkboxlist c#

在下面的示例中,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>

如果我取消选中 Item1 列表项,我需要获得相同的值?

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

请帮忙

在后面的代码中,您可以处理事件chkbxFileTypes_SelectedIndexChanged例如:

protected void chkbxFileTypes_SelectedIndexChanged(object sender, EventArgs e)
        {
           List<ListItem> selected = chkbxFileTypes.Items.Cast<ListItem>()
          .Where(li => ! li.Selected)
          .ToList();
        }

或使用简单的 foreach:

  List<string> selectedValues = chkbxFileTypes.Items.Cast<ListItem>()
         .Where(li => ! li.Selected )
         .Select(li => li.Value)
         .ToList();
protected void chkbxFileTypes_SelectedIndexChanged(object sender, EventArgs e)
    {
        string checkedid = "";
        string uncheckedValue = "";
        foreach (ListItem val in chkbxFileTypes.Items)
        {
            if (val.Selected)
            {
                checkedid += val.Value + " ";
            }
            else
            {
                uncheckedValue += val.Value + ",";
            }
        }
    }
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;
        }
    }

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

protected void chkbxFileTypes_SelectedIndexChanged(object sender, EventArgs e)
{
    string checkedValue = "";
    string uncheckedValue = "";
    foreach (ListItem val in chkbxFileTypes.Items)
    {
        if (val.Selected)
        {
            checkedValue += val.Value + " ";
        }
        else
        {
            uncheckedValue += val.Value + ",";
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM