一.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 = "";
//}
}