【问题标题】:An update panel, a postback and jQuery更新面板、回发和 jQuery
【发布时间】:2009-11-23 22:19:21
【问题描述】:

更新面板、回发和 jQuery。听起来像一个糟糕的笑话, 但这是我的情况。

我有两个网格包含在一个 MS 更新面板中。每个格子 其中有导致回发事件发生的按钮。一岁以下 grid 是一个被 jQuery 函数隐藏的 div。在一个网格中 是一个超链接,它可以导致隐藏的 div 显示。里面 hidden div 是一个用于另一个回发的 asp:button。

现在是我遇到问题的时候。当我单击任一 网格内的按钮,我的被 jQuery 隐藏的 div 显示 向上。我不希望它出现。事实上它应该一直隐藏到 我调用该方法使其显示出来。超链接点击事件 div 确实有效,只是在回发时,隐藏的 div 显示。有谁知道这可能是什么原因造成的?我错过了什么吗 在回发或我需要更多的 document.ready 部分 jQuery。还是 MS ajax 更新面板搞砸了。

这是一个隐藏 div 的 jQuery 的 sn-p:

$(document).ready(function() {
   $("#actionDiv").hide();                 
});

【问题讨论】:

    标签: jquery asp.net-ajax postback


    【解决方案1】:

    $(document).ready() 在更新 MS AJAX 面板后不会触发。如果您可以在 actionDiv 进入浏览器之前在其上设置 css,那将更好地解决该问题。

    【讨论】:

    • +1 无需在文档中隐藏 div 准备就绪,只需默认使用 CSS 隐藏它,然后在需要时使用 jQuery 显示(如果单击按钮)
    • 我怎么没想到呢?可能是太沉迷于代码了。
    【解决方案2】:

    $(document).ready(function() 只被调用一次。您正在进行部分回发,因此您需要设置 $("#actionDiv").hide(); 每次。

    <script language="javascript" type="text/javascript">
        function AfterPostBackInit() { $("#actionDiv").hide(); }
    
        // Run AfterPostBackInit() when the page loads and after every post-back.
        Sys.Application.add_load(AfterPostBackInit);
    </script>
    

    【讨论】:

      猜你喜欢
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-31
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多