gridview实现单击checkbox全选代码问题

wo594261 2009-10-29 11:30:39
怎么实现全选。。。
...全文
506 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
jack15850798154 2009-10-29
  • 打赏
  • 举报
回复
用js


function SelectAllCheckBox()
{
var form =document.forms[0];
for(i=0;i<form.elements.length;i++)
{
if(form.elements[i].type=="checkbox")
{
form.elements[i].checked=true;
}
}
}
function ReSelectCheckBox()
{
var form =document.forms[0];
for(i=0;i<form.elements.length;i++)
{
if(form.elements[i].type=="checkbox")
{
if(form.elements[i].checked)
form.elements[i].checked=false;
else
form.elements[i].checked=true;
}
}
}
TalesTen 2009-10-29
  • 打赏
  • 举报
回复
呵呵,楼上代码都很全了,我就来看看吧,这个主要是要做个循环赋值
amywm1 2009-10-29
  • 打赏
  • 举报
回复
顶一个 !!学习!
Adechen 2009-10-29
  • 打赏
  • 举报
回复
楼上的已经很全了
Jquery
更简单,
wangchunlin880210 2009-10-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yfqvip 的回复:]
js的
JScript codefunction checkAll(chkAll)
{//debugger;var gvSend= document.getElementById("gdvResult");if(gvSend!=null)
{if(gvSend.rows.length>0)
{if(chkAll.checked)
{for(var i=1;i<gvSend.rows.length;i++)
{var checkBox= gvSend.rows[i].cells[0].firstChild;
checkBox.checked=true;
}
}else
{for(var i=1;i<gvSend.rows.length;i++)
{var checkBox= gvSend.rows[i].cells[0].firstChild;
checkBox.checked=false;
}
}
}
}
}
c#的
C# code///<summary>/// 全选///</summary>///<param name="sender"></param>///<param name="e"></param>protectedvoid checkAll(object sender, EventArgs e)
{
CheckBox cb= (CheckBox)sender;if (cb.Text=="全选")
{foreach (GridViewRow gvrin GridView1.Rows)
{
CheckBox cb1= (CheckBox)gvr.FindControl("check");
cb1.Checked= cb.Checked;
}
}
}
[/Quote]


支持!
wuyq11 2009-10-29
  • 打赏
  • 举报
回复
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
DataKeyNames="AreaID" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" />
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="chkAll" runat="server" AutoPostBack="True" OnCheckedChanged="chkAll_CheckedChanged" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkItem" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>


protected void chkAll_CheckedChanged(object sender, EventArgs e)
{
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
((CheckBox)GridView1.Rows[i].FindControl("chkItem")).Checked =
((CheckBox)this.GridView1.HeaderRow.FindControl("chkAll")).Checked;
}
}

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
DataKeyNames="AreaID" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="AreaID" HeaderText="ID" ReadOnly="True" SortExpression="ID" />
<asp:TemplateField>
<HeaderTemplate>
<input id="chkAll" onclick="SelectAll(this)"; type=checkbox>
</HeaderTemplate>
<ItemTemplate>
<input id="chkItem" type=checkbox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
客户端写javascript
function SelectAll(chkbox)
{
var box=chkbox;
state=theBox.checked;
elem=box.form.elements;
for(i=0;i<elem.length;i++)
if(elem[i].type=="checkbox" && elem[i].id!=box.id)
{
if(elem[i].checked!=state)
{
elem[i].click();
}
}
}
wuyq11 2009-10-29
  • 打赏
  • 举报
回复
<asp:TemplateField HeaderText="<input type=checkbox name='selectall' onClick='SelectAll(document.form1)'>全选"> <HeaderStyle Font-Bold="True" HorizontalAlign="Center" Width="8%"></HeaderStyle>
<ItemStyle HorizontalAlign ="Center" />
<ItemTemplate> <asp:CheckBox id="CheckBox1" runat="server" ToolTip='<%#Eval("Id")%>'> </asp:CheckBox> <asp:HiddenField ID="Hd_NewsId" Value='<%#Eval("NewsId")%>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
function SelectAll(frm)
{
for (var i=0;i<frm.elements.length;i++)
frm.elements[i].checked = frm.selectall.checked;
}

function CheckSelect(frm)
{
var col=frm.elements;
var obj=frm.selectall;
var intEls=0,intChks=0;
for(var i=0;i<col.length;i++)
{
if(col[i].type=="checkbox"&&col[i].name!="selectall")
{
intEls++;
if(col[i].checked)
intChks++;
}
}
obj.checked=(intEls==intChks);
}
foolishfox2000 2009-10-29
  • 打赏
  • 举报
回复
<script type="text/javascript" language="javascript">
function selectAll(chkVal, idVal)
{
var frm = document.forms[0];
for (i=0; i<frm.length; i++)
{
if (idVal.indexOf ('chkall') != -1)
{
if(chkVal == true)
{
frm.elements[i].checked = true;
}
else
{
frm.elements[i].checked = false;
}
}
}
}
hoomien 2009-10-29
  • 打赏
  • 举报
回复
3L很强大
only_lonely 2009-10-29
  • 打赏
  • 举报
回复
JS好
zhong2006 2009-10-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bigmingming 的回复:]
一:在客户端执行


<script type="text/javascript">
      function SelectAll(tempControl)
      {
          var theBox = tempControl;  //获取参数名称
          sState = theBox.checked;  //查看参数是否为真
          elem = theBox.form.elements;  //获取当前页面所有元素
          for(i=0;i <elem.length;i++)
          {
              if(elem[i].type=="checkbox" && elem[i].id!=theBox.id)
              {
                  if(elem[i].checked!=sState)
                  {
                      elem[i].click();
                  }
              }
          }
      }
   
    </script>

在GridView添加一列CheckBox模板列,在头模板也添加一个checkBox在CheckBox按钮事件上上添加

<HeaderTemplate>
  <asp:CheckBox ID="CheckBox2" runat="server" onclick="javascript:SelectAll(this);" />
</HeaderTemplate>
***************************************************************************
二 在服务器端执行
在外部添加一个CheckBox按钮,并讲该按钮的AutoPostBack属性设置为True,双击该CheckBox

protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
    {
        int i;
        if (((CheckBox)sender).Checked)
        {
            for (i = 0; i < GridView1.Rows.Count; i++)
            {
                ((CheckBox)GridView1.Rows[i].FindControl("CheckBox1")).Checked = true;//找到那一列模板的ID值
            }
        }
        else
        {
            for (i = 0; i < GridView1.Rows.Count; i++)
            {
                ((CheckBox)GridView1.Rows[i].FindControl("CheckBox1")).Checked =false;
            }
        }
    }


[/Quote]
xiequan2 2009-10-29
  • 打赏
  • 举报
回复
function SelectAll(tempControl)
{
//将除头模板中的其它所有的CheckBox取反
var theBox=tempControl;
xState=theBox.checked;
elem=theBox.form.elements;
for(i=0;i<elem.length;i++)
if(elem[i].type=="checkbox" && elem[i].id!=theBox.id)
{
// if(elem[i].checked!=xState)
elem[i].click();
}
}
满衣兄 2009-10-29
  • 打赏
  • 举报
回复
js的
function checkAll(chkAll) 
{
//debugger;
var gvSend = document.getElementById("gdvResult");
if(gvSend!=null)
{
if(gvSend.rows.length>0)
{
if(chkAll.checked)
{

for(var i=1;i <gvSend.rows.length;i++)
{
var checkBox = gvSend.rows[i].cells[0].firstChild;
checkBox.checked=true;
}
}
else
{
for(var i=1;i <gvSend.rows.length;i++)
{
var checkBox = gvSend.rows[i].cells[0].firstChild;
checkBox.checked=false;
}
}
}
}
}

c#的
/// <summary>
/// 全选
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void checkAll(object sender, EventArgs e)
{
CheckBox cb = (CheckBox)sender;
if (cb.Text == "全选")
{
foreach (GridViewRow gvr in GridView1.Rows)
{
CheckBox cb1 = (CheckBox)gvr.FindControl("check");
cb1.Checked = cb.Checked;
}
}
}


更多...
LZ给分吧。
o1230 2009-10-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lumi0605 的回复:]
这个很简单的 网上一大堆
[/Quote]
是滴,要懂得用GOOGLE或百度
bigmingming 2009-10-29
  • 打赏
  • 举报
回复
一:在客户端执行


<script type="text/javascript">
function SelectAll(tempControl)
{
var theBox = tempControl; //获取参数名称
sState = theBox.checked; //查看参数是否为真
elem = theBox.form.elements; //获取当前页面所有元素
for(i=0;i<elem.length;i++)
{
if(elem[i].type=="checkbox" && elem[i].id!=theBox.id)
{
if(elem[i].checked!=sState)
{
elem[i].click();
}
}
}
}

</script>

在GridView添加一列CheckBox模板列,在头模板也添加一个checkBox在CheckBox按钮事件上上添加

<HeaderTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" onclick="javascript:SelectAll(this);" />
</HeaderTemplate>
***************************************************************************
二 在服务器端执行
在外部添加一个CheckBox按钮,并讲该按钮的AutoPostBack属性设置为True,双击该CheckBox

protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
int i;
if (((CheckBox)sender).Checked)
{
for (i = 0; i < GridView1.Rows.Count; i++)
{
((CheckBox)GridView1.Rows[i].FindControl("CheckBox1")).Checked = true;//找到那一列模板的ID值
}
}
else
{
for (i = 0; i < GridView1.Rows.Count; i++)
{
((CheckBox)GridView1.Rows[i].FindControl("CheckBox1")).Checked =false;
}
}
}

liaoyukun111 2009-10-29
  • 打赏
  • 举报
回复
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>

<script language="javascript" type="text/javascript">
// 判断多选是否与选中项(没有选中的返回false)
function slcNo_click()
{
if (document.form1.checkboxname.length)
{
for (var i=0;i<document.form1.checkboxname.length;i++)
{
if(document.form1.checkboxname[i].checked)
{
return true;
}
}
}
else
{
if(document.form1.checkboxname.checked)
{
return true;
}
}
alert("请选择后再操作!");
return false;
}

// 鼠标经过改变行的颜色
if (!objbeforeItem)
{
var objbeforeItem=null;
var objbeforeItembackgroundColor=null;
}
function ItemOver(obj)
{
if(objbeforeItem)
{
objbeforeItem.style.backgroundColor = objbeforeItembackgroundColor;
}
objbeforeItembackgroundColor = obj.style.backgroundColor;
objbeforeItem = obj;
obj.style.backgroundColor = "#B9D1F3";
}
//

// 多选的全选与取消
function checkJs(boolvalue)
{
if(document.all.checkboxname.length>1)
{
for(var i=0;i<document.all.checkboxname.length;i++)
{
document.all.checkboxname[i].checked = boolvalue;
}
}
else
document.all.checkboxname.checked = boolvalue;
}
//

// 只有全部选中时“全选”选中
function SingleCheckJs()
{
var flag1=false;
var flag2=false;

if (document.form1.checkboxname.length)
{
for (var i=0;i<document.form1.checkboxname.length;i++)
{
if(document.form1.checkboxname[i].checked)
flag1 = true;
else
flag2 = true;
}
}
else
{
if(document.form1.checkboxname.checked)
flag1 = true;
else
flag2 = true;
}

if(flag1==true&&flag2==false)
document.getElementById("chk").checked = true;
else
document.getElementById("chk").checked = false;
}
//
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<table cellpadding="0" cellspacing="0" border="0" width="80%" style="font-size: 11px">
<tr>
<td align="center">
<asp:GridView ID="GridView1" runat="server" Width="100%" CellPadding="4" ForeColor="#333333"
AutoGenerateColumns="False" AllowPaging="True" PageSize="12" BorderColor="Silver"
BorderStyle="Solid" BorderWidth="1px" OnRowDataBound="GridView1_RowDataBound"
ShowFooter="True" EmptyDataText="没有数据记录!!" AllowSorting="True" OnSorting="GridView1_Sorting">
<Columns>
<asp:BoundField HeaderText="编号" DataField="id" Visible="False" />
<asp:TemplateField HeaderText="<input type='checkbox' id='chk' name='chk' onclick='checkJs(this.checked);' />全选" FooterText="全选">
<ItemTemplate>
<input type="checkbox" id="checkboxname" name="checkboxname" value='<%# DataBinder.Eval(Container.DataItem, "id")%>' onclick='SingleCheckJs();' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="单选" FooterText="单选">
<ItemTemplate>
<input type="radio" id="RadioName" name="RadioName" value='<%# Eval("id")%>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="自增列" FooterText="自增列">
<ItemTemplate>
<%# (Container.DataItemIndex+1).ToString()%>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="姓名" FooterText="姓名" DataField="name" SortExpression="name" />
<asp:BoundField HeaderText="身份证号" FooterText="身份证号" DataField="card" SortExpression="card" />
<asp:BoundField HeaderText="价格" FooterText="价格" DataField="price" DataFormatString="{0:¥#,##0.00}"
HtmlEncode="False" SortExpression="price" />
<asp:BoundField HeaderText="数字" FooterText="数字" DataField="price" DataFormatString="{0:0.00}"
HtmlEncode="False" SortExpression="price" />
<asp:BoundField HeaderText="建立时间" FooterText="建立时间" DataField="createdate" DataFormatString="{0:yyyy年MM月dd日 hh时mm分ss秒}"
HtmlEncode="False" SortExpression="createdate" />
</Columns>
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<EditRowStyle BackColor="#999999" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<PagerSettings Visible="False" />
<FooterStyle Font-Bold="True" />
<HeaderStyle Font-Bold="False" Font-Italic="False" />
</asp:GridView>
</td>
</tr>
<tr>
<td align="center" style="height: 25px">
<asp:LinkButton ID="btnFirst" CommandArgument="first" OnClick="PagerButtonClick"
runat="server">首 页</asp:LinkButton>
<asp:LinkButton ID="btnPrev" CommandArgument="prev" OnClick="PagerButtonClick" runat="server">上一页</asp:LinkButton>
<asp:LinkButton ID="btnNext" CommandArgument="next" OnClick="PagerButtonClick" runat="server">下一页</asp:LinkButton>
<asp:LinkButton ID="btnLast" CommandArgument="last" OnClick="PagerButtonClick" runat="server">尾 页</asp:LinkButton>
<asp:Label ID="LblCurrentIndex" runat="server"></asp:Label>
<asp:Label ID="LblPageCount" runat="server"></asp:Label>
<asp:Label ID="LblRecordCount" runat="server"></asp:Label></td>
</tr>
<tr>
<td>
<asp:Button ID="Button2" runat="server" Text="checkbox得到选择的行" OnClick="Button2_Click">
</asp:Button>
<asp:Button ID="Button1" runat="server" Text="radio得到选择的行" OnClick="Button1_Click"></asp:Button>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
o1230 2009-10-29
  • 打赏
  • 举报
回复
protected void checkAll(object sender, EventArgs e)
{
CheckBox cb = (CheckBox)sender;
if (cb.Text == "全选")
{
foreach (GridViewRow gvr in GridView1.Rows)
{
CheckBox cb1 = (CheckBox)gvr.FindControl("check");
cb1.Checked = cb.Checked;
}
}
}
蜜_Lumia 2009-10-29
  • 打赏
  • 举报
回复
这个很简单的 网上一大堆
configare 2009-10-29
  • 打赏
  • 举报
回复
你们被耍了
编程有钱人了 2009-10-29
  • 打赏
  • 举报
回复

$(document).ready(function() {
$("#checkboxall").click(function() {
if ($(this).attr("checked")) {
$(":checkbox").each(function() {
$(this).attr("checked", true);
});
}
else {
$(":checkbox").each(function() {
$(this).attr("checked", false);
});
}
});


});
加载更多回复(18)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧