簡體   English   中英

加載通用處理程序asp.net后執行javascript

[英]Execute javascript after loading generic handler asp.net

我有一個帶有pdf文件列表的gridview。 當用戶單擊pdf時,它將在頁面上內聯顯示文件。 pdf已加載后,我想執行一些javascript,但無法正常工作。 問題是pdf在其他所有內容之后加載,因此load事件在pdf開始加載之前觸發。

我的第一種方法是使用iframe。 內頁將檢索文件並將數據寫入響應。 如前所述,加載事件在加載pdf之前發生,我需要在之后觸發。 當前代碼使用通用處理程序ashx加載pdf內聯。 從ashx通用處理程序將pdf數據加載到服務器端后,如何觸發事件以執行javascript?

Aspx頁面:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "View")
    {
        int index = Convert.ToInt32(e.CommandArgument.ToString());
        string Id = GridView1.DataKeys[index].Value.ToString();
        HtmlGenericControl myObject = new HtmlGenericControl();
        myObject.TagName = "object";
        Panel1.Controls.Add(myObject);
        myObject.Attributes.Add("data", "GetPdf.ashx?Id=" + Id);
    }
}

通用處理程序ashx:

public void ProcessRequest(HttpContext context)
{
    System.Diagnostics.Debug.WriteLine("GetPdf.ashx started");
    string Id = context.Request.QueryString["Id"];
    byte[] data = GetPdf(Id);
    context.Response.ClearContent();
    context.Response.ContentType = "application/pdf";
    context.Response.AppendHeader("Content-disposition", "inline");
    context.Response.AddHeader("Content-Length", data.Length.ToString());
    context.Response.BinaryWrite(data);
    System.Diagnostics.Debug.WriteLine("GetPdf.ashx is done");
    context.Response.End();
}

您是否嘗試過為object標簽的onload事件設置事件處理程序? 我不確定這是否適用於所有瀏覽器,但我也不知道您需要使用哪種瀏覽器。

最壞的情況是您可以使用setTimeout快速輪詢PDF是否存在。

這是先前的答案 ,可能會在兩個方面都對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM