【问题标题】:JQuery/ASP.NET FrustrationJQuery/ASP.NET 受挫
【发布时间】:2016-05-27 17:12:04
【问题描述】:

我正在努力找出为什么这段代码不起作用! 我在 ASP.NET 页面上有一个 GridView 控件,该网格包含一个链接,用于将每条记录编辑为 ItemItemplate 字段。单击时,将执行 JQuery 脚本以打开用于编辑记录的模式表单,并且工作正常。我可以添加新记录并编辑现有记录。 当我单击模态表单的“关闭”按钮时出现问题,该按钮应触发 GridView 的刷新以反映所做的更改。这是通过在 GridView 上调用 DataBind 事件的 ASP:Button 来实现的。 模态表单上的“关闭”事件触发,我添加了一行来显示按钮的 ClientID 以触发事件,它应该正常工作。但是 GridView DataBind 永远不会触发。我在 btton 的点击事件上放了一个断点,但它永远不会到达那里。有任何想法吗?这是我在包含 GridView 的表单中使用的 JQuery/JavaScript 代码:

<script type="text/javascript">
$(document).ready(function () {
    $('a.popup').live('click', function (e) {

        var page = $(this).attr("href")

        var $dialog = $('<div></div>')
        .html('<iframe style="border:0px; " src = "' + page + '" width=600px" height="100%"></iframe>')
        .dialog({
            autoOpen: false,
            modal: true,
            appendTo:"form",
            height: 550,
            width: 'auto',
            title: "Message Details",
            buttons: {
                "Close": function () { $dialog.dialog('close'); }
            },
            close: function (event, ui) {
                alert('<%=btnRefresh.ClientID %>');
                __doPostPack('<%= btnRefresh.ClientID %>', '');
            }
        });
        $dialog.dialog('open');
        e.preventDefault();
    });
});
</script>

我已经阅读了许多关于类似内容的帖子,但我似乎无法实施正确的修复。我尝试的最后一件事是在另一篇文章中添加某人建议的“appendTo:"Form"' 部分,但这对我没有任何改变。 btnRefresh 代码工作正常。当用户单击模态表单上的关闭按钮时,我只是不知道如何让它触发。

【问题讨论】:

  • 你可以试试UniqueID而不是ClientIDstackoverflow.com/questions/18394931/…
  • 我刚刚尝试过(感谢您的建议),它在警报时给了我一个不同的 ID,但仍然没有让事件本身触发。
  • 这是另一个,100% 未经测试:setTimeout(function () { __doPostPack('&lt;%= btnRefresh.UniqueID %&gt;', ''); }, 100);。如果可行,您可以尝试使用 0 而不是 100。
  • 不,也没有,尽管我很欣赏这些建议!这让我发疯了!

标签: javascript jquery asp.net modal-dialog


【解决方案1】:

我认为应该是__doPostBack 而不是__doPostPack

您可能还需要将 ClientID 更改为 UniqueID,如 cmets 中所述。 UniqueID 也应该是按钮的 name 属性。可能看起来像这样:ctl00$btnRefresh

【讨论】:

  • 你知道,有些日子我不应该被允许坐在键盘前!!!!我不知道我是怎么错过的,但你是对的!它有效,谢谢!我想我很好奇为什么 IntelliSense 没有捕捉到它或者我没有收到脚本错误。也许这就是我忽略它的原因。
  • 如果现在有可能比我更愚蠢,有人可以分享一下吗? (现在脸红了!)
  • 哈哈,这发生在我们所有人身上……这是一种通行权;)
  • 成人礼?他们要撕毁我的工会卡,把我踢出编程社区,因为我做了这样的愚蠢事情,然后在最大的开发者帮助网站上广播我的愚蠢!! (笑)顺便说一句,我真的很感谢你的帮助。
  • @DanielAnderson - 如果它能让你感觉更好:你不是唯一一个错过它的人。而且我过去已经经历过那个仪式(将来肯定会再次经历)。
猜你喜欢
  • 1970-01-01
  • 2023-04-09
  • 2013-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-26
  • 1970-01-01
  • 2013-12-21
  • 1970-01-01
相关资源
最近更新 更多