[英]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.