javascript - JQuery/ASP.NET 的挫败感

标签 javascript jquery asp.net modal-dialog

我正在绞尽脑汁地试图找出为什么这段代码不起作用! 我在 ASP.NET 页面上有一个 GridView 控件,该网格包含一个链接,用于将每条记录编辑为 ItemItemplate 字段。单击时,将执行 JQuery 脚本以打开用于编辑记录的模式表单,效果很好。我可以添加新记录并编辑现有记录。 当我单击模态表单的“关闭”按钮时,问题就出现了,该按钮应该触发 GridView 的刷新以反射(reflect)所做的更改。这是通过使用一个调用 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 代码工作正常。我只是不知道当用户单击模式表单上的关闭按钮时如何让它触发。

最佳答案

我认为应该是__doPostBack而不是__doPostPack

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

关于javascript - JQuery/ASP.NET 的挫败感,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37489016/

相关文章:

javascript - 在 JavaScript 中使用或不使用中间变量时代码是否更优化

javascript - 构造函数中定义的属性是自己的还是继承的?

javascript - jquery 显示隐藏每个 div onclick

c# - Azure 负载均衡器在回发时导致 400 错误 "Invalid Hostname"

asp.net - DNN 中不同用户的自定义界面..如何?

c# - ASp.net Webform 多行文本框在页面加载时自动添加换行符

javascript - 一一循环ajax请求并一一显示结果?

javascript - 如何将存储在字符串中的数值相加?

javascript - 按下按钮时将 HTML 表单字段添加到现有表单而不重新加载

javascript - Jquery 对话框默认可见