我有一个aspx页面,其中有一个linkbutton,点击该链接按钮后,我调用另一个aspx页面在弹出窗口中传递一个参数,如下所示:
<asp:linkbutton id='lbtn1' onClick=<%#"window.open('/testsite/mypage.aspx?param=abcd');return false"%>
直到现在它工作正常但现在我必须将我的页面包含到另一个网站,他们使用JQuery进行弹出对话框,并要求我使用相同的方式加载我的页面。
我是JQuery的新手并且不知道。我试着通过这个论坛搜索谷歌但没有运气。
有人可以帮助我并告诉我如何实现这一点(请不要介意,但我会非常感谢代码示例)。
非常感谢。
答案 0 :(得分:7)
您的意思是通过iframe将页面加载到模式/灯箱样式中吗?尝试使用lightbox plugin或阅读jQuery UI dialog。
如果您决定使用jQuery UI对话框,则可以执行以下操作:
<div id="dialog">
<iframe src="page.html"></iframe>
</div>
...
$( "#dialog" ).dialog();
答案 1 :(得分:6)
还有另一种方法,但是出于模态弹出的目的,iframe似乎是一个完全合法的解决方案。但是您可以使用ajax查询加载目标页面的所有html,并使用它填充模式对话框。使用jQuery:
<script type="text/javascript">
function showPanel(panelID)
{
$panel = $('#'+panelID);
$.ajax({
url: "/testsite/mypage.aspx",
type: "GET",
dataType: "html",
async: false,
data: { "param": "abcd"
},
success: function (obj) {
// obj will contain the complete contents of the page requested
// use jquery to extract just the html inside the body tag
$content=$(obj).find('body').html();
// then update the dialog contents with this and show it
$panel.html($content);
$panel.dialog();
}
});
}
</script>
<div id="dialog">
</div>
然后使用面板ID来点击您的点击事件。
<asp:LinkButton id="lbtn1" onClick="showPanel('dialog');return false;" />
注意:虽然这可能会有效,但如果你想在客户端上做一些链接,那么LinkButton
就没有意义,因为根据定义它是一个回发控件。因此,如果您希望将其呈现为超出样式的超链接,请使用HyperLink
控件或仅使用HTML链接。如果没有,只需在链接文本或内容周围放置“div”或“span”,并使用jQuery向其添加单击事件。在SO上有很多关于此类事情的讨论。
答案 2 :(得分:0)
我可以考虑提供一个动态aspx页面,其中部分或全部构建页面的唯一方法是在弹出窗口中添加一个iframe,并将其目标设置为您要加载的URL。
讨厌iframe,但我认为这可能是唯一的方式。