public void MessageBox(string message, string url)
{
string str;
str = "<script language=javascript>alert('" + message + "');location='" + url + "';</script>";
Page.ClientScript.RegisterStartupScript(Page.GetType(), "", str);
}
为什么封装在类里面就会报错:
CS0120: 非静态字段、方法或属性“System.Web.UI.Page.ClientScript.get”要求对象引用如果直接写在.aspx.cs中就没问题呢
{
string str;
str = "<script language=javascript>alert('" + message + "');location='" + url + "';</script>";
Page.ClientScript.RegisterStartupScript(Page.GetType(), "", str);
}
为什么封装在类里面就会报错:
CS0120: 非静态字段、方法或属性“System.Web.UI.Page.ClientScript.get”要求对象引用如果直接写在.aspx.cs中就没问题呢
public class other : System.Web.UI.Page
{
public other()
{
DataBase data = new DataBase();
//
//TODO: 在此处添加构造函数逻辑
//
}
public void MessageBox(string message, string url)
{
string str;
str = "<script language=javascript>alert('" + message + "');location='" + url + "';</script>";
Page.ClientScript.RegisterStartupScript(Page.GetType(), "", str);
}
}
调用:
other o = new other();
o.MessageBox("s");
page_load...
MessageBox("s");//直接使用
}
Page.ClientScript.RegisterStartupScript(this.GetType(), "", str);
做客户端的url转向,非先让服务器端去执行一段代码,输出脚本,再让客户端的脚本去执行要么就直接Response.Redirect,如果用服务器代码。
要么就用一个html元素input type='button',直接客户端提示后,客户端跳转。。
做客户端的url转向,非先让服务器端去执行一段代码,输出脚本,再让客户端的脚本去执行要么就直接Response.Redirect,如果用服务器代码。
要么就用一个html元素input type='button',直接客户端提示后,客户端跳转。。
我主要是在页面提交以后,弹出提示成功对话框,在直接用Response.Redirect的话,js脚本是写在html开头的,这样页面css就不会加载到,页面混乱,在点击确认后才会加载css。
用Page.ClientScript.RegisterStartupScript的话是js脚本写在html末端,这样的话就先加载css,再执行js的。
更多的是使用jquery.还有,像这样的Page.ClientScript.RegisterStartupScript、Page.RegisterHiddenField
在我看来就是狗屎。。使用这些页面是必须要得有form runat="server"
如果没有的话,不报错,也不会有正确的结果。