我有一个页面在加载时显示以下内容:
<div>
<img src="loading.gif" alt="Loading" /> Generating PDF Document, please wait.
<div>
同时,我想自动运行这个方法后面的代码:
private void GeneratePdf()
{
...
}
最后,我想在方法完成后将用户重定向到File.pdf
路径。GeneratePdf()
我该怎么做呢?
我有一个页面在加载时显示以下内容:
<div>
<img src="loading.gif" alt="Loading" /> Generating PDF Document, please wait.
<div>
同时,我想自动运行这个方法后面的代码:
private void GeneratePdf()
{
...
}
最后,我想在方法完成后将用户重定向到File.pdf
路径。GeneratePdf()
我该怎么做呢?
您需要按照此处Page_Load
的说明使用该事件。此外,这是对页面生命周期的一个很好的解释。你应该看看它。以下是来自上述链接的一些示例代码:
<script runat="server">//This script runs on the server and dishes up some output for the page.
Sub Page_Load
lbl1.Text="The date and time is " & now()
End Sub
</script>
<html>
<body>
<form runat="server">
<h3><asp:label id="lbl1" runat="server" /></h3>//This generates the textbox that will be given a value from the above script.
</form>
</body>
</html>
希望这对你有帮助!
我建议将 GeneratePDF 与 ajax 一起使用,因此您可以使用
$.ajax({
url: '/pdf/fiele_to_generate_pdf.aspx',
type: 'POST',
contentType: "application/json; charset=utf-8",
data: $.toJSON(jsonObj),
processData: false,
dataType: 'html',
async: false,
success: function(html) {
window.location.href = '/pdf/example.pdf';
}});
所以加载你可以使用jquery,有一个名为BlockUI的好插件你可以在你的ajax调用之前使用它。
您可以使用 asp:Timer 控件来指示何时应调用您的代码隐藏
<asp:Timer runat="server" ID="timer1" Interval="3000" OnTick="timer1_Tick"></asp:Timer>
然后实现 Timer 的 Tick 事件。这将在标记中指定的 3 秒(3000 毫秒)后调用
protected void timer1_Tick(object sender, EventArgs e)
{
GeneratePdf();
Response.Redirect("~/somepath/generatedPDF.pdf");
}