高手请进,C#、ASP.NET问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 16:14:12
error:非静态的字段、方法或属性“System.Web.UI.Page.ClientScript.get”要求对象引用

public static void ShowDialog(string strDialog) //显示对话框
{
错误行-> Page.ClientScript.RegisterStartupScript(
this.GetType(),
"",
"<script language='javascript' type='text/javascript'>alert('" + strDialog + "')</script>");
}
怎么改才好啊》???
首先,我调试了很久的了,把public static void ShowDialog(string strDialog) 改为public void ShowDialog(string strDialog)是不起作用的,问题依旧,可以判断问题不是出在这里。
对于rzzfch520所说的,方法,我早就已经在用了,只不过,以这种方式弹出的对话框背景是一片空白的,而用
Page.ClientScript.RegisterStartupScript(
this.GetType(),
"",
"<script language='javascript' type='text/javascript'>alert('" + strDialog + "')</script>");
这个方法就解决了这个问题,我在.aspx.cs文件创建这个函数没有问题,但放在.cs文件了就出现此问题了

public static void ShowDialog(string strDialog)
你这里定义这个方法是静态的,而方法里用到的Page指当前页面,这个是动态生成的实例,不是静态的,所以出错,
解决方法就是不把方法定义成静态

public void ShowDialog(string strDialog)

你可以专门写一个类来定义JS方法,比如你可以写一个JSHelper.cs类,在里面定义一个弹出提示框的方法
/// <summary>
/// 弹出对话框
/// </summary>
/// <param name="msg">提示信息</param>
public static void Alert(string msg)
{
HttpContext.Current.Response.Write("<script language='javascript'>alert('"+msg.Trim()+"')<" + "/" + "script>");
}
然后就可以在每个页面去调用了.