选择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;
}
}
}
}
//***************************************************************************
下面的代码是从网上找的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;
}
}
}
}
//***************************************************************************
解决方案 »
- js查询数据库
- linkbutton控件失效!
- 求解--KindEditor问题
- 关于图片保存的一个问题
- 在什么情况下会Application_End?
- 怎么把oracle的number(无小数位数)转换为.net 的int类型、
- 下载文件名乱码!!!Response.AppendHeader("Content-Disposition", "Attachment;FileName=" & HttpUtility.UrlEncode"大家好.doc", Enc
- 求一正则表达式(c#)
- 求助:visual studio 2013调试不了JS,提示“当前不会命中断点。没有与此行关联的调试程序的目标代码类型的可执行代码。”
- 关于用vb script实现焦点问题?
- 求一个简单数组的写法!
- 在asp.net中如何构造带有Text的button按钮
看不明白又不能单步调试...
<%@ 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>
<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>