【发布时间】: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而不是ClientID:stackoverflow.com/questions/18394931/…。 -
我刚刚尝试过(感谢您的建议),它在警报时给了我一个不同的 ID,但仍然没有让事件本身触发。
-
这是另一个,100% 未经测试:
setTimeout(function () { __doPostPack('<%= btnRefresh.UniqueID %>', ''); }, 100);。如果可行,您可以尝试使用 0 而不是 100。 -
不,也没有,尽管我很欣赏这些建议!这让我发疯了!
标签: javascript jquery asp.net modal-dialog