【问题标题】:Popup chart not working inside Ajax UpdatePanel弹出图表在 Ajax UpdatePanel 中不起作用
【发布时间】:2013-10-22 08:06:01
【问题描述】:

我已经成功构建了一个弹出图表,当鼠标悬停在 GridView 中的图像上时会显示该图表。问题是,如果我将 Gridview 放在 UpdatePanel 中,则在更改页面中下拉菜单的选择后页面更新后,弹出窗口不会显示。

参见下面的代码示例

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
  <asp:GridView ID="Table0" runat="server" AutoGenerateColumns="False" DataSourceID="SQL">
    ....
  </asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>

我在以下两页中有完整的代码:

我尝试在另一个网站 (http://www.aspsnippets.com/Articles/jQuery-Plugins-not-working-after-ASPNet-AJAX-UpdatePanel-Partial-PostBack-or-when-Asynchronous-request-is-over.aspx) 之后添加以下代码

    //On UpdatePanel Refresh
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    if (prm != null) {
        prm.add_endRequest(jQuery(document).ready(function (sender, e) {
            if (sender._postBackSettings.panelsToUpdate != null) {
        $('.HoverDesc').hover(function () {
            $(this).find('p').show(200);
        }, function () {
            $(this).find('p').hide(100);
        });
            }
        }));
    };

但我收到一条错误消息:

错误:无法获取属性“panelsToUpdate”的值:对象为空或未定义

我也尝试了以下方法,这不会导致错误,但它似乎不起作用:

    //On UpdatePanel Refresh
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    if (prm != null) {
        prm.add_endRequest(function (sender, e) {
            if (sender._postBackSettings.panelsToUpdate != null) {
                jQuery(document).ready(function ($) {
                    $('.HoverDesc').hover(function () {
                        $(this).find('p').show(200);
                    }, function () {
                        $(this).find('p').hide(100);
                    });
                });
            }
        });
    };

任何帮助将不胜感激

谢谢

【问题讨论】:

    标签: javascript jquery asp.net ajax gridview


    【解决方案1】:

    如果它对某人有帮助,我已经在此页面的帮助下设法解决了问题:

    http://blog.dreamlabsolutions.com/post/2009/02/24/jQuery-document-ready-and-ASP-NET-Ajax-asynchronous-postback.aspx

    代码如下:

    <script src="http://code.jquery.com/jquery-1.8.3.min.js" type="text/javascript"></script>
    <script type="text/javascript">
    
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
        function EndRequestHandler(sender, args) {
            if (args.get_error() == undefined) {
                alertTest();
            }
        }
    
        function alertTest() {
            jQuery(document).ready(function ($) {
                $('.HoverDesc').hover(function () {
                    $(this).find('p').show(200);
                }, function () {
                    $(this).find('p').hide(100);
                });
            });
        }
    
        alertTest();   
    
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-14
      • 1970-01-01
      • 2010-12-27
      相关资源
      最近更新 更多