我使用iframe来显示aspx页面,如下所示
<a href="#" id="trigger">this link</a>
<div id="dialog" style="display:none">
<div>
<iframe frameborder="0" height="600" width="600" src="Displaypdf.aspx"></iframe>
</div>
</div>
在Displaypdf.aspx.cs中,我正在显示如下pdf。我在aspx中有一个按钮,单击该按钮会显示pdf(在现为iframe的aspx页面中)
protected void Button1_Click(object sender, EventArgs e)
{
string FilePath = Server.MapPath("sample.pdf");
WebClient User = new WebClient();
Byte[] FileBuffer = User.DownloadData(FilePath);
if (FileBuffer != null)
{
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", FileBuffer.Length.ToString());
Response.BinaryWrite(FileBuffer);
}
}
这很好。现在我想在Page_Load中做同样的事情,但是当我将此代码放入页面加载中时,这是行不通的。
protected void Page_LOad(object sender, EventArgs e)
{
string FilePath = Server.MapPath("sample.pdf");
WebClient User = new WebClient();
Byte[] FileBuffer = User.DownloadData(FilePath);
if (FileBuffer != null)
{
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", FileBuffer.Length.ToString());
Response.BinaryWrite(FileBuffer);
}
}
发生的是,我单击并获取了我的iframe,但是iframe是空白的,因为第一次没有显示mein pdf。有人可以告诉我如何解决此问题。
我已经尝试了您的代码,但我认为您缺少一些使它起作用的东西。我在下面提供了您的代码的编辑版本,该版本应该可以正常运行。
iframe页面(aspx):
<head>
<script src="../../Scripts/jquery-1.9.1.min.js"></script>
<script src="../../Scripts/jquery-ui.js"></script>
<script type="text/javascript">
var $dial1 = ""
function openlink(url, title, width, height) {
$dial1 = $('<div></div>')
.html('<iframe id="frame1" style="border: 0px; " src="' + url + '" width="100%" height="100%"></iframe>')
.dialog({
autoOpen: false,
modal: true,
height: height,
width: width,
title: title
});
$dial1.dialog('open');
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:Button ID="Button1" runat="server" Text="This Link" OnClientClick="openlink('Displaypdf.aspx', 'Open', '1000', '470'); return true;" OnClick="Button1_Click" />
</form>
</body>
Displaypdf.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
string FilePath = Server.MapPath("sample.pdf");
WebClient User = new WebClient();
Byte[] FileBuffer = User.DownloadData(FilePath);
if (FileBuffer != null)
{
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", FileBuffer.Length.ToString());
Response.BinaryWrite(FileBuffer);
}
}
希望这可以帮助...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句