陋室铭
永远也不要停下学习的脚步(大道至简至易)

posts - 2169,comments - 570,views - 413万

在后台GridView_RowDataBound事件中
CheckBox cbx = e.Row.FindControl("cbxName") as CheckBox;
        try
        {
            //绑定选中CheckBox 客户端ID
            cbx.Attributes.Add("onclick", "ChangeGet(" + cbx.ClientID + ")");
        }
        catch
        {
        }
前台js脚本代码
<script language="javascript">
function ChangeGet(SelectCheckBox)
{            
//找到页面所有 input
  var objs = document.getElementsByTagName("input");
  for(var i=0; i<objs.length; i++)
    {
//找到input中的checkbox
        if(objs[i].type.toLowerCase() == "checkbox" )
//所有checkbox为false
        objs[i].checked = false;
    }
//找到选中checkbox
   var SelectCheckBoxID=SelectCheckBox.id;
//选中checkbox为true
   document.getElementById(SelectCheckBoxID).checked = true;
}

</script>





或者:

在后台GridView_RowDataBound事件中
CheckBox cbx = e.Row.FindControl("cbxName") as CheckBox;
        try
        {
            //绑定选中CheckBox 客户端ID
            cbx.Attributes.Add("onclick", "ChangeGet(this)");
        }
        catch
        {
        }
前台js脚本代码
<script language="javascript">
function ChangeGet(SelectCheckBox)
{            
//找到页面所有 input
  var objs = document.getElementsByTagName("input");
  for(var i=0; i<objs.length; i++)
    {
//找到input中的checkbox
        if(objs[i].type.toLowerCase() == "checkbox" )
//所有checkbox为false
        objs[i].checked = false;
    }
//选中checkbox为true
   SelectCheckBoxID.checked = true;
}

</script>


写个完善一点的 你看看 

    <script language="javascript">

       
       
var ClickNum=0;//判断同一checkbox连续点击次数
var PreCheckboxID="";//记录点击checkbox的ID
//listId为控制checkbox的范围
//SelectRadio是点击checkbox自己
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;
    }
}

    </script>




    <form id="form1" runat="server">
        <div id="DivGridview">
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="a"
                DataSourceID="SqlDataSource1" OnRowDataBound="GridView1_RowDataBound">
                <Columns>
                    <asp:BoundField DataField="a" HeaderText="a" InsertVisible="False" ReadOnly="True"
                        SortExpression="a" />
                    <asp:BoundField DataField="b" HeaderText="b" SortExpression="b" />
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:CheckBox ID="CheckBox1" runat="server" onclick="SelectRadio('DivGridview',this)"/>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
        </div>

    </form>

posted on   宏宇  阅读(4417)  评论(6编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
< 2007年1月 >
31 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3
4 5 6 7 8 9 10

点击右上角即可分享
微信分享提示