首页 > 解决方案 > Server.Execute() 调用asp文件后再次执行点击处理程序

问题描述

我正在尝试使用 Winnovative Tools 生成 PDF。在单击“打印 PDF 按钮”后触发的单击处理程序中,我有以下代码。

我希望在调用 Server.Execute() 后控制恢复到 printPDF_Click 子例程,但它会从头开始调用 printPDF_Click 子例程,这会导致循环,因为 Server.Execute() 将再次被调用,依此类推。

当我将preserveForm设置为False时,它​​按预期工作,但随后我丢失了表单数据,重点是保留它。

Private Sub printPDF_Click(sender As Object, e As EventArgs) Handles printPDF.Click
    Dim outTextWriter As IO.TextWriter = New IO.StringWriter()

    Server.Execute("Default_v3.aspx?isWinnovative=true", outTextWriter)

    Dim baseUrl As String = HttpContext.Current.Request.Url.AbsoluteUri
    Dim htmlStringToConvert As String = outTextWriter.ToString()


    Dim downloadBytes As Byte() = PdfHelper.CreatePdf(htmlStringToConvert, baseUrl)

    Dim response As HttpResponse = HttpContext.Current.Response
    response.Clear()
    response.AddHeader("Content-Type", "binary/octet-stream")
    response.AddHeader("Content-Disposition", ("attachment; filename=" + (
                     "Rendered.pdf" + ("; size=" + downloadBytes.Length.ToString))))
    response.Flush()
    response.BinaryWrite(downloadBytes)
    response.Flush()
    response.End()
End Sub

标签: asp.netvb.netwebformswinnovative

解决方案


推荐阅读