Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 选择asp.net复选框列表中的所有项目_C#_Jquery_Asp.net_Checkboxlist_Selectall - Fatal编程技术网

C# 选择asp.net复选框列表中的所有项目

C# 选择asp.net复选框列表中的所有项目,c#,jquery,asp.net,checkboxlist,selectall,C#,Jquery,Asp.net,Checkboxlist,Selectall,NET和C 我想要一个带有全选项目的复选框列表 当这个特殊的项目 选择后,将选择所有其他 也 从中删除所选内容时 这个项目,也将是从所有 其他项目。 勾选/取消勾选 任何其他项目将只有一个 对该特定项目的影响 无论的选择状态如何 选择所有项目。 我正在寻找一个jquery解决方案 以下是我的codebehind中的数据绑定代码: IList<Central> Centrals = new CentralProvider().GetAllCentralsAsList(); Centra

NET和C

我想要一个带有全选项目的复选框列表

当这个特殊的项目 选择后,将选择所有其他 也 从中删除所选内容时 这个项目,也将是从所有 其他项目。 勾选/取消勾选 任何其他项目将只有一个 对该特定项目的影响 无论的选择状态如何 选择所有项目。 我正在寻找一个jquery解决方案

以下是我的codebehind中的数据绑定代码:

IList<Central> Centrals = new CentralProvider().GetAllCentralsAsList();
Centrals.Insert(0, new Central(){Central_ID = 999, Central_Name = "Select All"});
CentralChecks.DataSource = Centrals;
CentralChecks.DataTextField = "Central_Name";
CentralChecks.DataValueField = "Central_ID";
CentralChecks.DataBind();
以下是标记:

<div class="CentralDiv" id="CentralDiv">
    <h2>Centrals:</h2>
    <span>
        <asp:TextBox ID="CentralTextBox" runat="server" CssClass="textbox">Centrals</asp:TextBox>
        <img id="CentralArrow" src="images/down_arrow.jpg" style="margin-left: -22px; margin-bottom: -5px" />
    </span>
    <div id="CentralEffect" class="ui-widget-content">
        <asp:CheckBoxList ID="CentralChecks" runat="server" onclick="GetSelectedCentralValue();">
        </asp:CheckBoxList>
    </div>
</div>
请注意,页面上有多个复选框列表,因此任何解决方案都必须记住这一点。

以下是一个示例:

代码:

以下是复选框的html格式:

<input type='checkbox' ref='checkall' class='select-all'/>
<input type='checkbox' />
<input type='checkbox' />
<input type='checkbox' />
<input type='checkbox' />
<input type='checkbox' />
<input type='checkbox' />

单击全选可以遍历所有列表项。并维护一个状态标志,以维护是否选中了所有复选框

if(boolAllChecked) {
    foreach (ListItem listItem in CentralChecks.Items)
    {
         listItem .Selected = false;
    }
}
else {
    foreach (ListItem listItem in CentralChecks.Items)
    {
         listItem .Selected = true;
    }
}         

类似于您可以用于任何复选框列表的内容,只需将myCheckBoxList的cssclass添加到每个CheckBoxList控件:

$('.myCheckBoxList :checkbox').eq(0).click(function() { 
    var toggle = this.checked;
    $('.myCheckBoxList :checkbox').attr("checked", toggle);
});

扩展了mdmullinax的精彩答案,我为全选行为提出了一个通用解决方案,该解决方案还取消了全选,即如果任何其他选项被取消选中,则为第一个选项,并在所有其他项目被选中时为全选打网线

当我从ASP.Net服务器端控件中注入脚本时,它也会在窗口加载时执行。安全总比后悔好:

    $(window).load(function () {
        var cbs = $('.myCheckBoxList :checkbox');
        cbs.eq(0).click(function () {
            var toggle = this.checked;
            cbs.attr('checked', toggle);
        });
        cbs.slice(1).click(function () {
            if (!this.checked) {
                cbs.eq(0).attr('checked', false);
            } else {
                cbs.eq(0).attr('checked', cbs.slice(1).filter(':not(:checked)').length == 0);
            }
        });
    });

有一种使用jquery在asp复选框列表中创建全选项的通用方法。 使用“全选”功能,表单上可以有多达个复选框列表控件。 你只需要确定一下

您的复选框列表具有allowSelectAll类 您将ListItem添加到复选框列表中,以允许用户选择 一切都是有价值的 chkBoxList.Items.Insert0,新ListItemAll,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>

我怎样才能只给复选框列表中的第一个元素一个特定的ref或class值呢?你只需要为你的select all item做一个单独的复选框我知道你已经回答了很多PHP问题。我不确定您对asp.net中的CheckBoxList控件有何体验,但据我所知,这是无法做到的。也许您可以提供一个代码示例来帮助我?谢谢,虽然这不是一个jquery解决方案,但这是完美的-优雅的和适应性强的+1并标记为答案。谢谢,我同意。实现起来非常简单。只需在呈现复选框列表后插入脚本@pvaju896请创建一个新问题,然后您可以引用此问题
<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>