使用按钮在gridview中复选框

时间:2009-12-17 12:12:13

标签: asp.net gridview

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

请提供您的知识

等待你的回复......

由于

9 个答案:

答案 0 :(得分:2)

<input id="btncheckall" type="button" value="select all" />

click事件处理程序添加到上面的按钮(使用jQuery)

<script type="text/javascript">
  $(function(){

    $("#btncheckall").click(function(){

      $("#gridview input:checkbox").attr("checked","checked");

    });

  });
</script>

或者您可以使用复选框。 这是gridview之外的一个复选框

<input id="checkall" type="checkbox" />

change事件处理程序添加到上面的复选框(使用jQuery)

<script type="text/javascript">
  $(function(){

    $("#checkall").change(function(){

      $("#gridview input:checkbox").val( $(this).val() );

    });

  });
</script>

答案 1 :(得分:1)

C# 假设你有一个全部勾选按钮

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

在点击事件中你会做类似的事情:

protected void chkSelectAll_CheckedChanged(object sender, EventArgs e)
{
   CheckBox chk;   //assuming your gridview id=GridView1

   foreach (GridViewRow rowItem in GridView1.Rows) 
  {   
     chk = (CheckBox)(rowItem.Cells[0].FindControl("chk1")); 
     chk.Checked =((CheckBox)sender).Checked;
   }
}

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>

复选框字段如下:

<asp:CheckBox ID="chkAll" runat="server" Text="SelectAll" 
onclick="javascript:SelectAllCheckboxes(this);" />

答案 2 :(得分:1)

Hai Dominic,
  如果你想要javascript看看这个 http://www.4guysfromrolla.com/articles/052406-1.aspx#postadlink

Check box in gridview with button

答案 3 :(得分:1)

Jquery可以让这更容易。挂钩选择事件的外部框,并在里面迭代网格框选择它们全部。

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

答案 4 :(得分:1)

试试这个:

<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>

答案 5 :(得分:1)

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

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");

将一个类 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;
}
}

您将 parentbox 类分配给网格标题中的父复选框。

您无需定义它们 - parentbox childbox

答案 6 :(得分:0)

如果您正在使用jquery,则可以使用$('input:checkbox')选择器,例如

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

答案 7 :(得分:0)

请检查一下,告诉我你工作的时间。

使用Javascript:

http://wiki.asp.net/page.aspx/281/check-uncheck-checkboxes-in-gridview-using-javascript/

使用Serverside脚本:(VB.Net)

http://aspnet.4guysfromrolla.com/articles/052406-1.aspx

答案 8 :(得分:0)

使用jQuery:

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

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