选择DataGridVew中某行的CheckBox,获取该行所有列的值,
下面的代码是从网上找的Sample里的代码,看不明白,请各位帮忙解释下,谢谢//***************************************************************************
//JavaScript脚本
//gridview,只允许选中一条记录
var ClickNum=0;//判断同一checkbox连续点击次数
var PreCheckboxID="";//记录点击checkbox的ID
function SelectRadio(listId,SelectRadio)
{
    //判断是否连击同一个checkbox
    if(PreCheckboxID==SelectRadio.id)
    {
        ClickNum = ClickNum + 1;
    }
    else
    {
        PreCheckboxID = SelectRadio.id;
        ClickNum = 0;
    }
    //找到控制范围
    var GridViewtableSearchList = document.getElementById(listId);
    //找到控制范围下所有input
    var objs = GridViewtableSearchList.getElementsByTagName("input");
    //找到控制范围下所有checkbox并都变为false
    for(var i = 0; i < objs.length; i++) 
    {
        if(objs[i].type.toLowerCase() == "checkbox" )
        objs[i].checked = false;
    }
    var SelectRadioID = SelectRadio.id;
    //如果连击次数为奇次checked为true偶次为false
    if(ClickNum%2!=1)
    {
        document.getElementById(SelectRadioID).checked = true;
    }
    else
    {
        document.getElementById(SelectRadioID).checked = false;
    }
} //***************************************************************************
//Html Code
   <div id="SelectGridViewRow" style="width: 100%; font-size: 14px; margin-top: 1%;">
            <uc1:WrapGridView ID="gvSelectRow" runat="server" SkinID="NormalWrapGridView" OnPageIndexChanging="gvSelectRow_PageIndexChanging"
                AllowPaging="True" AutoGenerateColumns="True" OnRowDataBound="gvSelectRow_RowDataBound">
                <Columns>
                    <asp:TemplateField meta:resourcekey="TemplateFieldResource1">
                        <itemtemplate>
<asp:CheckBox id="ckbItem" runat="server"  onclick="SelectRadio('SelectGridViewRow',this);"></asp:CheckBox> 
</itemtemplate>
                    </asp:TemplateField>
                </Columns>
            </uc1:WrapGridView>
        </div>//***************************************************************************
//CS Code
//页面跳转
function tb_show(caption, url, imageGroup) 

   //function called when the user clicks on a thickbox link
   ....................
}    //分页显示
    protected void gvSelectRow_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        gvSelectRow.PageIndex = e.NewPageIndex;
        gvSelectRow.DataSource = Ds.Table[0];
        gvSelectRow.DataBind();
    }    //获取选中的行号
    private int GetGridViewRowNum()
    {
        int rowNum = -1;        for (int i = 0; i < gvSelectRow.Rows.Count; i++)
        {
            CheckBox cb = (CheckBox)gvSelectRow.Rows[i].FindControl("ckbItem");
            if (cb.Checked == true)
            {
                rowNum = i;
                break;
            }
        }        return rowNum;
    }    protected void ckbItem_CheckedChanged(object sender, EventArgs e)
    {
        CheckBox selectedCb = (CheckBox)sender;        if (selectedCb.Checked)
        {
            for (int i = 0; i < gvSelectRowo.Rows.Count; i++)
            {
                CheckBox cb = (CheckBox)gvSelectRow.Rows[i].FindControl("ckbItem");
                if ((selectedCb != cb) && cb.Checked)
                {
                    cb.Checked = false;
                }
            }
        }
    }
//***************************************************************************

解决方案 »

  1.   

    JavaScript脚本 
    看不明白又不能单步调试...
      

  2.   

    不用这么麻烦,可以获取HTML中的所有CheckBox,当点击全选CheckBox(选中)时,遍历所有CheckBox并设为选中,反之,全部设为false
      

  3.   


    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>无标题页</title>
        <script type="text/javascript">
            function CheckAll(obj){
                if(obj.checked){
                    for(var i=0;i<form1.elements.length;i++){
                        if(form1.elements[i].type == "checkbox"){
                            form1.elements[i].checked = true;
                        }
                    }
                }
                else{
                    for(var i=0;i<form1.elements.length;i++){
                        if(form1.elements[i].type == "checkbox"){
                            form1.elements[i].checked = false;
                        }
                    }
                }
                
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:CheckBox ID="CheckBox1" runat="server" onclick="CheckAll(this)" />全选<br/>
            
            <asp:CheckBox ID="CheckBox2" runat="server" /><br/>
            <asp:CheckBox ID="CheckBox3" runat="server" /><br/>
            <asp:CheckBox ID="CheckBox4" runat="server" /><br/>
            <asp:CheckBox ID="CheckBox5" runat="server" /><br/>
            <asp:CheckBox ID="CheckBox6" runat="server" /><br/>
        </div>
        </form>
    </body>
    </html>
      

  4.   

    兼容FireFox<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>无标题页</title>
        <script type="text/javascript">
            function CheckAll(obj){
                var form = document.getElementById("form1");
                if(obj.checked){
                    for(var i=0;i<form.elements.length;i++){
                        if(form.elements[i].type == "checkbox"){
                            form.elements[i].checked = true;
                        }
                    }
                }
                else{
                    for(var i=0;i<form.elements.length;i++){
                        if(form.elements[i].type == "checkbox"){
                            form.elements[i].checked = false;
                        }
                    }
                }
                
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:CheckBox ID="CheckBox1" runat="server" onclick="CheckAll(this)" />全选<br/>
            
            <asp:CheckBox ID="CheckBox2" runat="server" /><br/>
            <asp:CheckBox ID="CheckBox3" runat="server" /><br/>
            <asp:CheckBox ID="CheckBox4" runat="server" /><br/>
            <asp:CheckBox ID="CheckBox5" runat="server" /><br/>
            <asp:CheckBox ID="CheckBox6" runat="server" /><br/>
        </div>
        </form>
    </body>
    </html>