急!急!急!jquery高手请进,高分请教

小蜗牛1 2015-03-02 04:05:51
jquery如何实现多个gridview的动态隐藏和显示,我在girdview上面添加div之后,可以实现单个gridview的隐藏和显示,但是隐藏第一个gridview之后,点击第二个gridview,第一个gridview又显示出来了,不知道如何解决。

<script type="text/javascript">
$(document).ready(function() {
$('#img_unconfirm').click(function() { //点击下拉按钮后执行
$('#unconfirm').slideToggle(); //div动态隐藏和显示
});
})

</script>
...全文
618 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinfei0803 2015-03-04
  • 打赏
  • 举报
回复
id是不是两个设成一样的了,当成class用了
  • 打赏
  • 举报
回复
引用 16 楼 adgjlxxx 的回复:
[quote=引用 15 楼 adgjlxxx 的回复:] [quote=引用 13 楼 starfd 的回复:] 设置一个hidden,用于存放每个div的显隐,每次js操作都去更新该hidden,页面加载时从hidden恢复相应div的显隐,这样不用点击img回发
请讲述清楚一点,我有些不明白,但又好像理解一些。[/quote] 你是指<input id="div_id" type="hidden" value="*****" />这样回发的时候还是会重置[/quote] 显示会重置,但hidden的值因为ViewState的原因可以保持,当页面加载完毕后,从hidden中获取值,并按值回复显隐 假定hidden的值为0,1,0,1,0,0,其中1代表显示,0代表隐藏,可能的代码如下
var arr = $('#hd_Sign').val().split(/,/g);
var dvs = $('div.container');//此处是包含img和div的外层div
for(var i=0;i<arr.length;i++)
{
      var dv = dvs.eq(i);
      if(arr[0]==0)
      {dv.find('div').hide();}
      else
      {dv.find('div').show();}
}
在$().ready(function(){})里直接执行上段代码,即页面加载完毕就执行一次
S314324153 2015-03-03
  • 打赏
  • 举报
回复
用一个变量(或hidden)记录一下,已经隐藏的gridivew的id,每次触发事件都去遍历一下这个变量的值,把里面有的全隐藏就好
小蜗牛1 2015-03-03
  • 打赏
  • 举报
回复
引用 15 楼 adgjlxxx 的回复:
[quote=引用 13 楼 starfd 的回复:] 设置一个hidden,用于存放每个div的显隐,每次js操作都去更新该hidden,页面加载时从hidden恢复相应div的显隐,这样不用点击img回发
请讲述清楚一点,我有些不明白,但又好像理解一些。[/quote] 你是指<input id="div_id" type="hidden" value="*****" />这样回发的时候还是会重置
小蜗牛1 2015-03-03
  • 打赏
  • 举报
回复
引用 13 楼 starfd 的回复:
设置一个hidden,用于存放每个div的显隐,每次js操作都去更新该hidden,页面加载时从hidden恢复相应div的显隐,这样不用点击img回发
请讲述清楚一点,我有些不明白,但又好像理解一些。
Justin-Liu 2015-03-03
  • 打赏
  • 举报
回复
引用 6 楼 adgjlxxx 的回复:
[quote=引用 3 楼 FoxDave 的回复:] 确实单凭这些看不出来,不知道你那里怎么写的
很简单,给你个例子 <img src="....." id="img_unconfirm" /><asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton> <div id="unconfirm"><asp:GridView ID="GridView_Unconfirmed" runat="server" ></asp:GridView></div> <img src="....." id="img_confirm" /><asp:LinkButton ID="LinkButton2" runat="server">LinkButton</asp:LinkButton> <div id="confirm"><asp:GridView ID="GridView_Confirmed" runat="server" ></asp:GridView></div> 代码就是这样的,隐藏第一个gridview后,点击第二个linkbutton绑定gridview时,第一个就会显示出来 [/quote] 你这个是不是回发服务器 ,然后重置了 所以才显示出来了?
  • 打赏
  • 举报
回复
引用 12 楼 adgjlxxx 的回复:
综上所述,看来只能在后台写隐藏事件了,这样每次都回发,效率差好多,而且不是用户友好型的。
设置一个hidden,用于存放每个div的显隐,每次js操作都去更新该hidden,页面加载时从hidden恢复相应div的显隐,这样不用点击img回发
小蜗牛1 2015-03-02
  • 打赏
  • 举报
回复
综上所述,看来只能在后台写隐藏事件了,这样每次都回发,效率差好多,而且不是用户友好型的。
qzyf1992 2015-03-02
  • 打赏
  • 举报
回复
既然回发了当然在服务器端去隐藏控件了 ,在你对应的点击事件里进行隐藏 。虽然我记不清了 但是微软的gridview控件不至于没有隐藏的方法吧
程序猿老曾 2015-03-02
  • 打赏
  • 举报
回复
还没遇到这么复杂的~~~~ 使用ajax提交修改后的数据,然后通过UpdatePanel局部刷新目标gridview咯!! 这个也只是理论上的哦~~~~ 我个人觉得在asp.net上用js总是很多麻烦
小蜗牛1 2015-03-02
  • 打赏
  • 举报
回复
引用 8 楼 cxzzwb 的回复:
div加个runat="server",通过后台来控制显示或隐藏了!! 否则只要回发,jQuery改变的状态都会被抹掉!!毕竟jQuery只是在客户端做处理而已~~~
这样就无法使用卷起的效果了,没有了效果,只是单纯的隐藏和显示
程序猿老曾 2015-03-02
  • 打赏
  • 举报
回复
div加个runat="server",通过后台来控制显示或隐藏了!! 否则只要回发,jQuery改变的状态都会被抹掉!!毕竟jQuery只是在客户端做处理而已~~~
小蜗牛1 2015-03-02
  • 打赏
  • 举报
回复
引用 5 楼 starfd 的回复:
点击那个按钮会回发后台???这种ui部分的事情你居然回发了,回发了当然回复到默认的html页面 你f12看下是不是回发了
如果有很多gridview,而且gridview里面还有dropdownlist控件来修改工程师,怎么可能不通过回发来修改数据库?
小蜗牛1 2015-03-02
  • 打赏
  • 举报
回复
引用 3 楼 FoxDave 的回复:
确实单凭这些看不出来,不知道你那里怎么写的
很简单,给你个例子 <img src="....." id="img_unconfirm" /><asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton> <div id="unconfirm"><asp:GridView ID="GridView_Unconfirmed" runat="server" ></asp:GridView></div> <img src="....." id="img_confirm" /><asp:LinkButton ID="LinkButton2" runat="server">LinkButton</asp:LinkButton> <div id="confirm"><asp:GridView ID="GridView_Confirmed" runat="server" ></asp:GridView></div> 代码就是这样的,隐藏第一个gridview后,点击第二个linkbutton绑定gridview时,第一个就会显示出来
  • 打赏
  • 举报
回复
点击那个按钮会回发后台???这种ui部分的事情你居然回发了,回发了当然回复到默认的html页面 你f12看下是不是回发了
小蜗牛1 2015-03-02
  • 打赏
  • 举报
回复
引用 1 楼 anchenyanyue 的回复:
看你的jquery 取得是id 不应该出现你说的问题 id 难道你写的一样的 而且你得发页面源码 别人才能帮你写 不然谁知道你是点的什么隐藏显示的
我觉得是回发机制造成的,首先点击Unconfirmed quotes第一个gridview显示了,然后点击前面图片隐藏,在点击Confirmed quotes,这时第一个和第二个gridview都会显示出来
Justin-Liu 2015-03-02
  • 打赏
  • 举报
回复
确实单凭这些看不出来,不知道你那里怎么写的
  • 打赏
  • 举报
回复
如果是一对一关系,然后外部都有div包含 那么可以在点击按钮时,先向上找到包含的div,然后通过这个div找到对应的gv
<div class="container">
<img />
<div></div>
</div>
那对应的js代码如下
$('img').click(function(){
$(this).parent().find(">div").slideToggle();
});
暗尘掩月 2015-03-02
  • 打赏
  • 举报
回复
看你的jquery 取得是id 不应该出现你说的问题 id 难道你写的一样的 而且你得发页面源码 别人才能帮你写 不然谁知道你是点的什么隐藏显示的

62,243

社区成员

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

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

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

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