只选中GridView中的一个CheckBox

一.html控件

function SignCheck(cbox)
{
var obj = document.getElementsByTagName("input");
for (var i=0; i < obj.length; i++)
{
if(obj[i].type == "checkbox")
{
obj[i].checked = false;
}
var sid = cbox.id;
document.getElementById(sid).checked = true;
}
}
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<input id="Checkbox1" type="checkbox" name="ck" οnclick="SignCheck(this);" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>


二. ASP.NET控件
<script language="javascript" type="text/javascript">//在GridView只选中一个CheckBox
var ClickNum=0;//判断同一checkbox连续点击次数
   var PreCheckboxID="";//记录点击checkbox的ID
   //listId为控制checkbox的范围
   //SelectRadio是点击checkbox自己
function SignCheck(listId,SelectCheckBox)
{

   ///判断是否连击同一个checkbox
    if(PreCheckboxID==SelectCheckBox.id)
    {
        ClickNum = ClickNum + 1;
    }
    else
    {
        PreCheckboxID = SelectCheckBox.id;
        ClickNum = 0;
    }
    //找到控制范围
   var GridViewableSearchList=document .getElementById(listId);
   //找到控制范围下所有input
   var objs=GridViewableSearchList.getElementsByTagName("input");
   //找到控制范围下所有checkbox并都变为false
    for(var i = 0; i < objs.length; i++)
    {
        if(objs[i].type.toLowerCase() == "checkbox" )
        objs[i].checked = false;
    }
    var SelectCheckBoxId=SelectCheckBox.id;
    //如果连击次数为奇次checked为true偶次为false
    if(ClickNum%2!=1)
    {
       document.getElementById(SelectCheckBoxId).checked = true;
    }
    else
    {
        document.getElementById(SelectCheckBoxId).checked = false;
    }
}
</script>

使用范例:

    <asp:TemplateField>
    <HeaderTemplate>请选择</HeaderTemplate>
    <ItemTemplate>
    <asp:CheckBox ID="chk" runat="server" οnclick="SignCheck('studentView',this)"/>
    </ItemTemplate>


选中checkbox并将值赋给textbox
ASP:
//SignCheck('GV_History',this)" 是用的上面的js方法,让checkbox只能选中一个
//

<asp:TemplateField HeaderText="选择" >
      <ItemTemplate>
           <asp:CheckBox ID="chk" runat="server"    οnclick="SignCheck('GV_History',this)"        OnCheckedChanged="chkSelect_CheckedChanged" AutoPostBack="True" />
       </ItemTemplate>
       <HeaderStyle CssClass="GridviewHead" />
       <ItemStyle HorizontalAlign="Center" CssClass="GridviewStyle" ForeColor="black" />
       </asp:TemplateField>

CS文件:
protected void chkSelect_CheckedChanged(object sender, EventArgs e)
    {
        if (((CheckBox)sender).Checked)
        {
            GridViewRow gvr = (GridViewRow)((CheckBox)sender).Parent.Parent;
            this.BankClass.Text = this.GV_History.DataKeys[gvr.RowIndex].Values["BankClass"].ToString();
            this.BankNum.Text = this.GV_History.DataKeys[gvr.RowIndex].Values["BankNum"].ToString();
            this.BankUserName.Text = this.GV_History.DataKeys[gvr.RowIndex].Values["BankUserName"].ToString();
        }
        //else
        //{
        //    this.BankClass.Text = "";
        //    this.BankNum.Text = "";
        //    this.BankUserName.Text = "";
        //}

    }


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值