C# 选中GridView中的所有复选框
我在ASP.NET/C中有一个GridView,其中有一个CheckBoxField、一个BoundField和两个ButtonField。所有4个都有一个标题,以明确列代表的位置。在Page_Load事件中,我将GridView的B ataèSource设置为我的填充数据表 我想让它更容易为用户使用,并想在标题中做一个复选框。当用户选中该复选框时,应在GridView中选中所有复选框。我已经将CheckBoxField的HeaderText设置为C# 选中GridView中的所有复选框,c#,asp.net,.net,gridview,checkbox,C#,Asp.net,.net,Gridview,Checkbox,我在ASP.NET/C中有一个GridView,其中有一个CheckBoxField、一个BoundField和两个ButtonField。所有4个都有一个标题,以明确列代表的位置。在Page_Load事件中,我将GridView的B ataèSource设置为我的填充数据表 我想让它更容易为用户使用,并想在标题中做一个复选框。当用户选中该复选框时,应在GridView中选中所有复选框。我已经将CheckBoxField的HeaderText设置为,现在它在标题中显示了一个复选框 现在我想给这个
,现在它在标题中显示了一个复选框
现在我想给这个复选框添加一个函数,当它被选中时,所有的复选框都会被选中,反之亦然。我试着用jQuery来实现,但没有成功,因为我找不到一种方法来为GridView中的所有复选框提供相同的ID或名称
在标题中选中基于HTML的复选框时是否会发生事件?如果是,哪项活动?
如果否,当我选中该复选框并从代码隐藏中更改GridView时,如何触发事件
如果这些都不可能,我怎么能用另一种方法,用javascript、jQuery或者ASP.net控件来实现呢
我希望你能在这方面帮助我,但请不要指望我是代码大师。我是一家公司的实习生,公司需要一个具有此功能的系统
更新:
谢谢大家帮助我。将数据源返回数据表的最简单方法是什么,因为我需要知道哪些行被选中,哪些行没有被选中?使用jQuery,可以在GridView中获得所有复选框,然后根据需要更改每个复选框的状态。只要点击一个链接或按钮,或者你喜欢的任何东西,你就可以调用这个javascript函数
function CheckAll()
{
var updateButtons = jQuery('#<%=gvGridViewId.ClientID%> input[type=checkbox]');
updateButtons.each( function() {
// use this line to change the status if check to uncheck and vice versa
// or make it as you like with similar function
jQuery(this).attr("checked", !this.checked);
});
}
函数CheckAll()
{
var updateButtons=jQuery(“#input[type=checkbox]”);
updateButtons.each(函数(){
//如果选择取消选中,则使用此行更改状态,反之亦然
//或者用类似的功能来制作
jQuery(this.attr)(“checked”,!this.checked);
});
}
这是我为您准备的一个示例
ASPX
<head runat="server">
<title></title>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
var allCheckBoxSelector = '#<%=GridView1.ClientID%> input[id*="chkAll"]:checkbox';
var checkBoxSelector = '#<%=GridView1.ClientID%> input[id*="chkSelected"]:checkbox';
function ToggleCheckUncheckAllOptionAsNeeded() {
var totalCheckboxes = $(checkBoxSelector),
checkedCheckboxes = totalCheckboxes.filter(":checked"),
noCheckboxesAreChecked = (checkedCheckboxes.length === 0),
allCheckboxesAreChecked = (totalCheckboxes.length === checkedCheckboxes.length);
$(allCheckBoxSelector).attr('checked', allCheckboxesAreChecked);
}
$(document).ready(function () {
$(allCheckBoxSelector).live('click', function () {
$(checkBoxSelector).attr('checked', $(this).is(':checked'));
ToggleCheckUncheckAllOptionAsNeeded();
});
$(checkBoxSelector).live('click', ToggleCheckUncheckAllOptionAsNeeded);
ToggleCheckUncheckAllOptionAsNeeded();
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="chkAll" runat="server" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkSelected" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</form>
</body>
var allCheckBoxSelector='#输入[id*=“chkAll”]:复选框';
var checkBoxSelector='#输入[id*=“chkSelected”]:复选框';
函数ToggleCheckUncheckAllOptionAsNeeded(){
var Total复选框=$(复选框选择器),
checkedCheckboxes=totalCheckboxes.filter(“:checked”),
NoCheckBox已选中=(CheckedCheckBox.length==0),
allCheckboxesAreChecked=(totalCheckboxes.length==checkedCheckboxes.length);
$(allCheckBoxSelector).attr('checked',AllCheckBoxes已选中);
}
$(文档).ready(函数(){
$(allCheckBoxSelector).live('单击',函数(){
$(checkBoxSelector).attr('checked',$(this).is(':checked');
根据需要切换CheckUncheckAlloptionAsneeded();
});
$(checkBoxSelector).live('单击',根据需要切换CheckUnchecklOption);
根据需要切换CheckUncheckAlloptionAsneeded();
});
C#
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!IsPostBack)
{
List lstObjects=新列表{“aaa”、“bbb”};
GridView1.DataSource=lstObjects;
GridView1.DataBind();
}
}
如果您使用的是最新版本的jQuery(1.7)
使用以下命令:
<script type="text/javascript">
var allCheckBoxSelector = '#<%=GridView1.ClientID%> input[id*="chkAll"]:checkbox';
var checkBoxSelector = '#<%=GridView1.ClientID%> input[id*="chkSelected"]:checkbox';
function ToggleCheckUncheckAllOptionAsNeeded() {
var totalCheckboxes = $(checkBoxSelector),
checkedCheckboxes = totalCheckboxes.filter(":checked"),
noCheckboxesAreChecked = (checkedCheckboxes.length === 0),
allCheckboxesAreChecked = (totalCheckboxes.length === checkedCheckboxes.length);
$(allCheckBoxSelector).attr('checked', allCheckboxesAreChecked);
}
$(document).ready(function () {
$(allCheckBoxSelector).click(function () {
$(checkBoxSelector).attr('checked', $(this).is(':checked'));
ToggleCheckUncheckAllOptionAsNeeded();
});
$(checkBoxSelector).click(ToggleCheckUncheckAllOptionAsNeeded);
ToggleCheckUncheckAllOptionAsNeeded();
});
</script>
var allCheckBoxSelector='#输入[id*=“chkAll”]:复选框';
var checkBoxSelector='#输入[id*=“chkSelected”]:复选框';
函数ToggleCheckUncheckAllOptionAsNeeded(){
var Total复选框=$(复选框选择器),
checkedCheckboxes=totalCheckboxes.filter(“:checked”),
NoCheckBox已选中=(CheckedCheckBox.length==0),
allCheckboxesAreChecked=(totalCheckboxes.length==checkedCheckboxes.length);
$(allCheckBoxSelector).attr('checked',AllCheckBoxes已选中);
}
$(文档).ready(函数(){
$(allCheckBoxSelector)。单击(函数(){
$(checkBoxSelector).attr('checked',$(this).is(':checked');
根据需要切换CheckUncheckAlloptionAsneeded();
});
$(checkBoxSelector)。单击(根据需要切换CheckUnchecklOption);
根据需要切换CheckUncheckAlloptionAsneeded();
});
根据您的需要尝试此代码
在网格视图中
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="headerchkbox" runat="server" CssClass="chkheader" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBoxAssign" runat="server" CssClass="chkitems" />
</ItemTemplate>
</asp:TemplateField>
java脚本
<script type="text/javascript">
$(window).bind('load', function () {
var headerChk = $(".chkheader input");
var itemChk = $(".chkitems input");
headerChk.bind("click", function () { itemChk.each(function () { this.checked = headerChk[0].checked; })
});
itemChk.bind("click", function () { if ($(this).checked == false) headerChk[0].checked = false; });
});
</script>
$(窗口).bind('load',函数(){
var headerChk=$(“.chkheader输入”);
var itemChk=$(“.chkitems输入”);
bind(“单击”,函数(){itemChk.each(函数(){this.checked=headerChk[0].checked;})
});
bind(“单击”,函数(){if($(this).checked==false)headerChk[0].checked=false;});
});
<script type="text/javascript">
$(window).bind('load', function () {
var headerChk = $(".chkheader input");
var itemChk = $(".chkitems input");
headerChk.bind("click", function () { itemChk.each(function () { this.checked = headerChk[0].checked; })
});
itemChk.bind("click", function () { if ($(this).checked == false) headerChk[0].checked = false; });
});
</script>