在ASP.NET中选中/取消选中CheckBoxList中的所有项目

qpgpyjmq  于 2023-06-25  发布在  .NET
关注(0)|答案(8)|浏览(124)

我有一个CheckBoxList,如下所示

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        CheckBoxList1.Items.Add(new ListItem("Check/Uncheck All","0"));
        CheckBoxList1.Items.Add(new ListItem("A","1"));
        CheckBoxList1.Items.Add(new ListItem("B","2"));
        CheckBoxList1.Items.Add(new ListItem("C", "3"));
        CheckBoxList1.Items.Add(new ListItem("D", "4"));
    }        
}

我希望每当选中第一个项目时检查其余的项目,每当未选中时取消选中其余的项目。用户也可以单独选择每个项目。
我想这样做的代码背后没有JavaScript或JQuery。

cwxwcias

cwxwcias1#

试试这个

protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
{
    string result = Request.Form["__EVENTTARGET"];
    int index1 = int.Parse(result.Substring(result.IndexOf("$") + 1));
    if (index1 == 0)
    {
        bool tf = CheckBoxList1.Items[index1].Selected ? true : false;
        CheckUncheckAll(tf);
    }
}
void CheckUncheckAll(bool tf)
{
    foreach (ListItem item in CheckBoxList1.Items)
    {
        item.Selected = tf;
    }
}
yvfmudvl

yvfmudvl2#

for(int index = 0; index < checkedListBox.Items.Count; ++index)
{
    checkedListBox.SetItemChecked(index, false);
}
8gsdolmq

8gsdolmq3#

有了这段代码,你可以从后面的C#代码访问复选框,并且可以选中/取消选中它们,甚至可以启用/禁用它们。希望能帮上忙。

foreach (ListItem item in CheckBoxList.Items) {
    item.Selected = true;
    item.Enabled = true;
}
r6vfmomb

r6vfmomb4#

在.aspx页面中,请为checkboxlist添加autopostback=“true”
那么请添加此事件。它的工作,我已经检查过了。

Private Sub CheckBoxList1_SelectedIndexChsanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBoxList1.SelectedIndexChanged
    Dim result As String = Request.Form("__EVENTTARGET")
    Dim checkedBox As String() = result.Split("$"c)
    Dim index As Integer = Integer.Parse(checkedBox(checkedBox.Length - 1))
    If CheckBoxList1.Items(index).Text = "Check/Uncheck All" Then
        Dim Chkbool As Boolean = CheckBoxList1.Items(index).Selected
        For Each item In CheckBoxList1.Items
            item.selected = Chkbool
        Next
    End If
End Sub
wydwbb8l

wydwbb8l5#

有一种通用的方法可以使用jquery在asp CheckBoxList中选择所有项目。您可以在窗体上拥有多个CheckBoxList控件,并具有Select All功能。你只需要确保
1.您的CheckBoxList具有allowSelectAll
1.您已将ListItem添加到复选框列表中,以允许用户选择值为All的All
chkBoxList.Items.Insert(0,new ListItem(“All”,“All”));
你只需要下面的代码

<script>
    $('.allowSelectAll :checkbox[value=All]').click(function () {
        var toggle = this.checked;
        $(this).closest('.allowSelectAll').find(":checkbox").attr("checked", toggle);
    });
</script>

在下面的代码spinet我有4个复选框列表

<div >
<label>Experience 1</label>
<asp:CheckBoxList ID="chklstExp1" runat="server"  CssClass="allowSelectAll">
</asp:CheckBoxList>

<label>Experience 2</label>
<asp:CheckBoxList ID="chklstExp2" runat="server" CssClass="allowSelectAll">
</asp:CheckBoxList>

<label>Experience 3</label>
<asp:CheckBoxList ID="chklstExp3" runat="server" CssClass="allowSelectAll">
</asp:CheckBoxList>

<label>Location</label>
<asp:CheckBoxList ID="chklstLocation" runat="server" CssClass="allowSelectAll">
</asp:CheckBoxList>

<asp:Button runat="server" ID="btnShowReport" OnClick="btnShowReport_Click" Text="Show Report"/>
</div>
kuarbcqp

kuarbcqp6#

要使项目为假,你需要做:

checkList.ClearSelection();

要使项为true:

foreach (var item in checkList.Items.Cast<ListItem>().Where (li => li.Value == "1" || li.Value == "3" || li.Value == "5"))
{
   item.Selected = true;
}
jqjz2hbq

jqjz2hbq7#

关于Check all

foreach (ListItem item in CheckBoxList.Items)
{
    item.Selected = true;    
}

对于unchek所有

CheckBoxList.ClearSelection();
0yg35tkg

0yg35tkg8#

我有一个radiobuttonlist和checkboxlist。checkboxlist的选择会根据选择radiobuttonlist项目选择自动更改。下面是输出和代码的图片:希望能帮到你。

protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (RadioButtonList1.SelectedValue == "0")
        {
            foreach (ListItem item in CheckBoxList1.Items)
            {
                item.Selected = true;
            }
        }
        if (RadioButtonList1.SelectedValue == "1")
        {
            CheckBoxList1.ClearSelection();

        }

相关问题