日期:2014-05-17  浏览次数:20422 次

this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script langua
因为做ASP.NET 的增删改,每次都要用到 
this.ClientScript.RegisterStartupScript(this.Page.GetType(), "alert", "<script>alert('删除成功!')</script>");
这条语句,太繁琐了,就想把它作为一个公共类的方法,每次使用时调用一下即可。
不过遇到了小小的问题请求帮助。
公共类:Message
 public ClientScriptManager ClientScript { get; set;}
 public   void  Alert(string msg)
    {
         this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script language='javascript' >alert('" + msg + "');</script>", true);
    }
页面cs代码:
 Message message = new Message();
public void  a()
{
 this.message.Alert("删除成功");
}

代码如上,错误是  这一行 this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script language='javascript' >alert('" + msg + "');</script>", true);     未将对象引用设置到对象的实例
PS:我在调试时看到msg 已获得值.......

这是什么原因??????????请指教!!!!


------解决方案--------------------

  private static void OutPutJavaScript(string js)
        {
            Random rand = new Random(DateTime.Now.Millisecond);
            string alert = "alert_" + rand.Next().ToString();
            System.Web.UI.Page CurPage = (System.Web.UI.Page)HttpContext.Current.Handler;
            System.Web.UI.ClientScriptManager cs = CurPage.ClientScript;
            if (!cs.IsClientScriptBlockRegistered(CurPage.GetType(), alert))
            {
                cs.RegisterClientScriptBlock(CurPage.GetType(), alert, js);