新建一个类文件a.cs
另外有b.aspx.cs的文件,这个是继承自System.Web.UI.Page类的。
如果直接在b.aspx.cs中,使用Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ref", "<script language=javascript>alert('test');script>");一点问题也没有。
可是我如何在a类中使用Page类呢。
我使用
System.Web.UI.Page page = new System.Web.UI.Page();
page.ClientScript.RegisterClientScriptBlock(p.GetType(), "ref", "<script language=javascript>alert('test');<script>");
这样只能通过编辑不能弹出警告框。
我想是没有直接引用到当前的Page页吧,也就是b.aspx这个页面的this.Page。
所以想知道如何在a.cs类中使用呢。
当然不想把this.Page作为参数来传递到a.cs中去。

解决方案 »

  1.   

    必须要把Page作为变量传过去,不然弹出对话框怎么知道在哪个页面弹出?
      

  2.   

    HttpContext.Current.Handler as Page
      

  3.   

    (HttpContext.Current.Handler as Page).ClientScript.RegisterClientScriptBlock((HttpContext.Current.Handler as Page).GetType(), "ref", "<script language=javascript>alert('test');<script>");
      

  4.   

    让a.cs也继承System.Web.UI.Page类。
    不过在调用执行的时候,必须是先执行了Page_Onload才可以
      

  5.   

    这个我也讲不清楚,你可以查一下MSDN
      

  6.   

    Page page = (Page)HttpContext.Current.CurrentHandler;
    page.ClientScript.RegisterStartupScript(page.GetType(), "javascript", "alert('在自定义类中引用当前page的方法');", true)Page类实现了IHttpHandler的,其实当前Page类实例page,就是当前的HttpHandler(未使用自定义HttpHandler的情况下),也就是HttpContext.Current.CurrentHandler因此可以作如上转换