加载ASP页面时如何自动运行方法?

时间:2013-01-13 23:00:33

标签: c# javascript asp.net webpage

我有一个页面,在加载时会显示以下内容:

<div>
  <img src="loading.gif" alt="Loading" /> Generating PDF Document, please wait.
<div>

同时,我想自动运行此方法代码:

private void GeneratePdf()
{
    ...
}

最后,我想在File.pdf方法完成后将用户重定向到GeneratePdf()路径。

我该怎么做?

3 个答案:

答案 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");
}