关于asp.net gridview中的checkbox全选全不选效果

BIRD72sky 2011-06-20 04:52:16
我的页面引用了母板页,全选和全不选的效果就不能实现,我用一个没有引用母版页的页面测试,就可以,气死我了,各位大侠帮忙啊!
到底是什么原因啊
...全文
189 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 bird72sky 的回复:]

function selectall() {
var chk= document.form1;
for (i = 0; i < chk.elements.length; i++)
chk.elements[i].checked = true;
}
function selectall2() {
……
[/Quote]
很显然,这段代码是想当然地去假设form1下边只有这一点checkbox的。这种代码怎么能照抄呢?它也不是作为一个通用的功能函数来设计的,它只是一个demo罢了。通用的功能函数,会考虑到你的页面上可能变动地有多个gridview,有多个checkbox,而你只应该准确选择特定的个别checkbox的设计问题。
子夜__ 2011-06-21
  • 打赏
  • 举报
回复
<asp:content id="Content1" contentplaceholderid="ContentPlaceHolder1" runat="Server">
<script language="javascript" type="text/javascript">
// <!CDATA[
function insert() {
document.getElementByIdx_x("txt").value = document.getElementByIdx_x("txt").value + "(__)";
return;
}
// ]]>
</script>
<div>
<textarea id="txt" runat="server" name="txt" rows="10" cols="50"></textarea>
<asp:Button ID="btnInsert" runat="server" Text="服务器端插入(_)" OnClientClick="insert();"/>
<input id="btnInsert2" name="insert" onclick="insert();" type="button" value="客户端插入(_)" runat="server"/></div>
</asp:content>

参考
BIRD72sky 2011-06-21
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 sp1234 的回复:]
引用 10 楼 bird72sky 的回复:

function selectall() {
var chk= document.form1;
for (i = 0; i < chk.elements.length; i++)
chk.elements[i].checked = true;
}
function selectall2() {
……

很显然……
[/Quote]
我的页面只有一个gridview,除gridview中的checkbox外,就只有“全选、取消”,这两个checkbox,~~~~(>_<)~~~~ ,测试的时候用的是普通页面(没有嵌套母版页的),等用了母版页后就不能用了,而且母版页上既没有gridview也没有checkbox,大哥啊,您直接告诉我呗
陌上青青草 2011-06-20
  • 打赏
  • 举报
回复
可以用考虑用后台代码来实现,不用JS
BIRD72sky 2011-06-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 leftwingc 的回复:]
JS和母版页的JS冲突了
[/Quote]
母版页里边除了这段js代码,没有其他的
BIRD72sky 2011-06-20
  • 打赏
  • 举报
回复
function selectall() {
var chk= document.form1;
for (i = 0; i < chk.elements.length; i++)
chk.elements[i].checked = true;
}
function selectall2() {
var chk = document.form1;
for (i = 0; i < chk.elements.length; i++)
chk.elements[i].checked = false;
}

<input type="checkbox" value="全选" id="check" onclick="selectall()" />全选
<input type="checkbox" value="全选" id="check2" onclick="selectall2()" />取消

用的是这段,没有引用母版页的时候可以实现效果,但是用了母版页之后就不可以了 ,郁闷……谢谢各位,帮忙
  • 打赏
  • 举报
回复
JS和母版页的JS冲突了
BIRD72sky 2011-06-20
  • 打赏
  • 举报
回复
补充:客户端的不可以,服务器端的可以
insus 2011-06-20
  • 打赏
  • 举报
回复
陌上青青草 2011-06-20
  • 打赏
  • 举报
回复
坐等详细错误提示。
flyerwing 2011-06-20
  • 打赏
  • 举报
回复
直接用服务器控件可以搞定.
用JS也能实现此功能.
具体用那个楼猪自己决定吧.
chuzhaowei 2011-06-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 porschev 的回复:]
帖代码。。。报错信息

一般都是ID没有用<%=控件ID.ClientID>
[/Quote]


正解,改一下js,用来母板页,子页面里面的服务器端控件的id生成html标签时,都会加上母板控件的ID作为前缀
jeje 2011-06-20
  • 打赏
  • 举报
回复

//全选操作js
function checkAll(obj,name) {
var names = document.getElementsByName(name);
var len = names.length;
if (len > 0) {
for (var i = 0; i < len; i++)
names[i].checked = obj.checked;
}
}

调用

<dx:GridViewDataColumn VisibleIndex="0" meta:resourcekey="GridViewDataColumnResource1">
<HeaderTemplate>
<input id="chkCheckAll" onclick="checkAll(this,'chkID')" type="checkbox" />
</HeaderTemplate>
<EditFormSettings Visible="False" />
<DataItemTemplate>
<input name="chkID" type="checkbox" value='<%# Eval("Id") %>' />
</DataItemTemplate>
</dx:GridViewDataColumn>
porschev 2011-06-20
  • 打赏
  • 举报
回复

帖代码。。。报错信息

一般都是ID没有用<%=控件ID.ClientID>
Im_Sorry 2011-06-20
  • 打赏
  • 举报
回复
你把没用母版页的代码发上来!!!!!!! 我给你看下!!!!!

62,025

社区成员

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

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

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

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