Asp.net 带按钮的gridview中的复选框

Asp.net 带按钮的gridview中的复选框,asp.net,gridview,Asp.net,Gridview,在按钮单击事件中,如何选中gridview中的所有复选框? 我不需要标题复选框 请提供您的知识 等待您的回复 谢谢# 假设你有一个全选按钮 <asp:CheckBox ID="chkSelectAll" runat="server" Text="SelectAll" AutoPostBack="true" OnCheckedChanged="chkSelectAll_CheckedChanged" /> javascript方法: <script language="jav

在按钮单击事件中,如何选中gridview中的所有复选框? 我不需要标题复选框

请提供您的知识

等待您的回复

谢谢# 假设你有一个全选按钮

<asp:CheckBox ID="chkSelectAll" runat="server" Text="SelectAll" 
AutoPostBack="true" OnCheckedChanged="chkSelectAll_CheckedChanged" />
javascript方法:

<script language="javascript">

function SelectAllCheckboxes(spanChk){

// Added as ASPX uses SPAN for checkbox
var oItem = spanChk.children;
var theBox= (spanChk.type=="checkbox") ? 
    spanChk : spanChk.children.item[0];
xState=theBox.checked;
elm=theBox.form.elements;

for(i=0;i<elm.length;i++)
  if(elm[i].type=="checkbox" && 
          elm[i].id!=theBox.id)
  {
    //elm[i].click();
   if(elm[i].checked!=xState)
     elm[i].click();
   //elm[i].checked=xState;
  }
 }
</script>

功能选择所有复选框(spanChk){
//添加为ASPX使用SPAN作为复选框
var oItem=spanChk.儿童;
变量theBox=(spanChk.type=“复选框”)?
spanChk:spanChk.children.item[0];
xState=box.checked;
elm=box.form.elements;
对于(i=0;i
或者您可以使用复选框。
这是gridview外部的复选框

<input id="checkall" type="checkbox" />
如果您使用的是$('input:checkbox')选择器

<script type="text/javascript">
  $(function() {
    $('#NameOfButtonToSelectAll').click( function() {
      $('input:checkbox').each( function() {
        this.checked = !this.checked;
      });
    });
  });
</script>

$(函数(){
$(“#按钮名称选择全部”)。单击(函数(){
$('input:checkbox')。每个(函数(){
this.checked=!this.checked;
});
});
});
Hai Dominic,
如果你想要javascript,看看这个


Jquery可以简化这一过程。钩住Selected事件的外部框,然后在其中迭代网格框,将它们全部选中

这是asp.net邪恶的一个很好的例子,新开发人员使用asp.net真的会让他们认为所有的处理和交互都发生在服务器端,各种疯狂的黑客行为都是为了维持这种错觉。这是倒退和疯狂的。

试试这个:

<asp:GridView ID="GridView1" runat="server">
    <Columns>
        <asp:TemplateField>
            <HeaderTemplate><asp:CheckBox ID="SelectUnSelectAllCheckBox" runat="server" /></HeaderTemplate>
            <ItemTemplate><asp:CheckBox ID="SelectCheckBox" runat="server" /></ItemTemplate>
        </asp:TemplateField>
        <!-- Other columns are omitted -->
    </Columns>
</asp:GridView>



$(文档).ready(函数(e){
$(“输入[id$='SelectUnSelectAllCheckBox'])。更改(函数(){
$(“输入[id$='SelectCheckBox']”)attr(“选中”,this.checked);
});
});

请检查一下,工作完成后告诉我

使用Javascript:

使用服务器端脚本:(VB.Net)

使用jQuery:

$('#SelectAll').click(function(){
  var checked = $(this).is(':checked');
  var allCheckboxes = $('table input:checkbox');
  if(checked)
      allCheckboxes.attr('checked','checked');
  else
      allCheckboxes.removeAttr('checked');
});

假设您的网格和复选框有一个类,您可能需要更改选择器。

为所有网格行复选框分配一个类,并使用下面的脚本获取它们

function getElementsByClass(searchClass,node,tag) {
    var classElements = new Array();
    if ( node == null )
        node = document;
    if ( tag == null )
        tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
    for (i = 0, j = 0; i < elsLen; i++) {
        if ( pattern.test(els[i].className) ) {
                classElements[j] = els[i];
                j++;
        }
    }
    return classElements;
}
将类
子框
指定给网格行子框

document.getElementById("parentbox").onclick  = function() {
for(var index=0; index < messages.length; index++) {
 // prompt the content of the div
 //message[index].checked = (message[index].checked) ? false : true;
}
}
document.getElementById(“parentbox”).onclick=function(){
对于(var index=0;index
您将
parentbox
类分配给网格标题中的父复选框


你不需要定义它们-
parentbox

或者javascript也是一个选项,因为我认为最好再问一次完全相同的问题不会让你有任何结果。完全重复-关闭。重复:以上同一用户发布的“副本”:如果复选框在网格外但在网格内不起作用,我如何在客户端调用此函数?您使用了哪一个?javascript或c#?我是jquery的新手,请解释或给出解决方案…我们可以使用javascript吗?jquery是基于JavaScripti构建的我没有在网格外使用头模板?可以将
在任意位置选择UnselectAllCheckBox
。如何在客户端调用此脚本side@Mehdi-这肯定会起作用,但应该添加可选项以选中所有项以取消选中所有项,@Domnic-这是一个jquery解决方案,只是需要注意:因此您必须在我的复选框id中包含jquery插件How ca调用此函数=“chk1”gridview checkbox id=“gridchk”使用CSSClass会更轻松-这些id在客户端会更改。您可能可以执行
$(“[id$='chk1']”)操作
,但使用类更简单。
<script type="text/javascript">
  $(function() {
    $('#NameOfButtonToSelectAll').click( function() {
      $('input:checkbox').each( function() {
        this.checked = !this.checked;
      });
    });
  });
</script>
<asp:GridView ID="GridView1" runat="server">
    <Columns>
        <asp:TemplateField>
            <HeaderTemplate><asp:CheckBox ID="SelectUnSelectAllCheckBox" runat="server" /></HeaderTemplate>
            <ItemTemplate><asp:CheckBox ID="SelectCheckBox" runat="server" /></ItemTemplate>
        </asp:TemplateField>
        <!-- Other columns are omitted -->
    </Columns>
</asp:GridView>
<script type="text/javascript">
    $(document).ready(function(e) {
        $("input[id$='SelectUnSelectAllCheckBox']").change(function() {
            $("input[id$='SelectCheckBox']").attr("checked", this.checked);
        });
    });
</script>
$('#SelectAll').click(function(){
  var checked = $(this).is(':checked');
  var allCheckboxes = $('table input:checkbox');
  if(checked)
      allCheckboxes.attr('checked','checked');
  else
      allCheckboxes.removeAttr('checked');
});
function getElementsByClass(searchClass,node,tag) {
    var classElements = new Array();
    if ( node == null )
        node = document;
    if ( tag == null )
        tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
    for (i = 0, j = 0; i < elsLen; i++) {
        if ( pattern.test(els[i].className) ) {
                classElements[j] = els[i];
                j++;
        }
    }
    return classElements;
}
var messages = getElementsByClass("childbox");
document.getElementById("parentbox").onclick  = function() {
for(var index=0; index < messages.length; index++) {
 // prompt the content of the div
 //message[index].checked = (message[index].checked) ? false : true;
}
}