选中/取消选中复选框列表中的所有项目 ASP.NET
本文关键字:项目 NET ASP 列表 取消 复选框 选中 | 更新日期: 2023-09-27 18:32:50
我有一个复选框列表,如下所示
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的代码来做这件事。
试试这个
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;
}
}
for(int index = 0; index < checkedListBox.Items.Count; ++index)
{
checkedListBox.SetItemChecked(index, false);
}
使用这段代码,您可以从 C# 代码隐藏访问复选框,并且可以选中/取消选中它们,甚至启用/禁用它们。希望它可能会有所帮助。
foreach (ListItem item in CheckBoxList.Items) {
item.Selected = true;
item.Enabled = true;
}
在.aspx页面中,请为复选框列表添加自动回发="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
有一种
通用的方法可以使用jquery在asp CheckBoxList中选择一个所有项目。窗体上可以具有"全选"功能的任意数量的复选框列表控件。你只需要确保
- 您的复选框列表具有允许选择所有类
- 您已将列表项添加到复选框列表中,以允许用户选择"全部"值为"全部"
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>
在下面的代码中,我有 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>
要使项目为假,您需要执行以下操作:
checkList.ClearSelection();
为了使项目为真:
foreach (var item in checkList.Items.Cast<ListItem>().Where (li => li.Value == "1" || li.Value == "3" || li.Value == "5"))
{
item.Selected = true;
}
对于 检查全部
foreach (ListItem item in CheckBoxList.Items)
{
item.Selected = true;
}
对于安切克所有人
CheckBoxList.ClearSelection();
我有一个单选按钮列表和 chechboxlist。 复选框列表的选择会根据选择单选按钮列表项目选择自动更改。 下面是输出和代码的图像:希望它能帮助你。
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();
}