我有一个页面,在加载时会显示以下内容:
<div>
<img src="loading.gif" alt="Loading" /> Generating PDF Document, please wait.
<div>
同时,我想自动运行此方法代码:
private void GeneratePdf()
{
...
}
最后,我想在File.pdf
方法完成后将用户重定向到GeneratePdf()
路径。
我该怎么做?
答案 0 :(得分:1)
您需要按照here的说明使用Page_Load
事件。此外,this是页面生命周期的一个很好的解释。你应该看看它。以下是上述链接中的一些示例代码:
<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>
希望这能帮到你!
答案 1 :(得分:0)
我建议将GeneratePDF与ajax一起使用,所以你可以使用like
$.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,有一个很好的plugin名为BlockUI你可以在你的ajax调用之前使用它。
答案 2 :(得分:0)
您可以使用asp:Timer控件来指示何时应该调用代码隐藏
<asp:Timer runat="server" ID="timer1" Interval="3000" OnTick="timer1_Tick"></asp:Timer>
然后实现Timer的Tick事件。这将在标记
中指定的3秒(3000ms)后调用protected void timer1_Tick(object sender, EventArgs e)
{
GeneratePdf();
Response.Redirect("~/somepath/generatedPDF.pdf");
}