none
不能弹出对话框,需要classxu操作 RRS feed

  • 问题

  • Default.aspx.cs 源代码
    
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    
    public partial class _Default:ClassXu
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            ClassXu xu = new ClassXu();
            xu.print();
            //ClassXu.print();
            
        }
    }
     
    App_Code文件夹下的ClassXu.cs文件
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    
    /// <summary>
    /// ClassXu 的摘要说明
    /// </summary>
    public class ClassXu:System.Web.UI.Page
    {
        public  void print()
        {
            Page.RegisterStartupScript("sb", "<script>alert('我来自classXu')</script>");
    
        
        }
    	public ClassXu()
    	{
    		//
    		// TODO: 在此处添加构造函数逻辑
    		//
    	}
    }
    
    
    ///为啥运行Default.aspx,不能弹出对话框“我来自classXu"呢? 谢谢,要弹出该怎样做呢?

    maiyude
    2010年3月13日 9:35

答案

  • 你好,

    参考下面的文档说明。

    ClientScriptManager.RegisterStartupScript
    Microsoft Online Community Support
    2010年3月15日 3:57
  • 你好!

    MSDN 的实例请查看 KeFang Chen 版主给出的地址。

    你需要在你的 class 中调用 Page 中的访问需要将 Page 做为参数传给你的 class,如下:

    class YourClassName
    {
        Page p;
    
        public YourClassName(Page p)
        {
            this.p = p; 
        }
    
        public void Print()
        {
            p.ClientScript.RegisterStartupScript(p.GetType(), "demo", "alert('Hello world');", true);
        }
    }
    
    protected void Page_Load(object sender, EventArgs e)
    {
        YourClassName c = new YourClassName(this);
        c.Print();
    }


    知识改变命运,奋斗成就人生!
    2010年3月15日 4:47
    版主

全部回复

  • 你好!

    是因为你没有在 PageLoad 事件中调用 Print 方法。

    你用的是 .net 1.1? 如果你使用的是 .net 2.0 以上的版本建议你使用 ScriptManager.RegisterStartupScript 来代替 Page.RegisterStartupScript



    知识改变命运,奋斗成就人生!
    2010年3月13日 10:30
    版主
  •  protected void Page_Load(object sender, EventArgs e)
        {
            ClassXu xu = new ClassXu();
            xu.print();///这里难道不算调用?????
            //ClassXu.print();
           
        }
    ????????????
    偶用的是.net 2.0,就是想调用class来输出。ScripManager.REgisterStartupScript能给个具体中文说明的实例么?兔子英文不好。


    maiyude
    2010年3月13日 12:14
  • 你好,

    参考下面的文档说明。

    ClientScriptManager.RegisterStartupScript
    Microsoft Online Community Support
    2010年3月15日 3:57
  • 你好!

    MSDN 的实例请查看 KeFang Chen 版主给出的地址。

    你需要在你的 class 中调用 Page 中的访问需要将 Page 做为参数传给你的 class,如下:

    class YourClassName
    {
        Page p;
    
        public YourClassName(Page p)
        {
            this.p = p; 
        }
    
        public void Print()
        {
            p.ClientScript.RegisterStartupScript(p.GetType(), "demo", "alert('Hello world');", true);
        }
    }
    
    protected void Page_Load(object sender, EventArgs e)
    {
        YourClassName c = new YourClassName(this);
        c.Print();
    }


    知识改变命运,奋斗成就人生!
    2010年3月15日 4:47
    版主