aspnet弹窗_.net 弹窗方式

Page.ClientScript.RegisterStartupScript(this.GetType(), "", "");

在.NET WEB应用上弹出消息框,我试验成功的有下面的几种,若有其他方法,望您不吝赐教。

1.只弹出提示消息。

方法一:

string script = "";

Page.RegisterStartupScript("",script);

方法二:

Response.Write("");

方法三:

同下面的方法一。

2.需要用户确定的弹出消息。

方法一:

添加引用System.Windows.Forms.dll

添加命名空间using   System.Windows.Forms;(然后可能需要重新生成一下文件)

然后同Winform里的MessageBox一样了(MessageBox.Show(参数1,......));

例:        if (MessageBox.Show("你确定要删除?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes){} else{}

方法二:

在Page_load()或其他合适地方为按钮添加新的属性:

btnDeleteAdmin.Attributes.Add("onclick", "return confirm('你确认要删除吗?')");

经常遇到这样的问题:便用Response.write()方法常常会导致页面布局改变,原因是因为script脚本改变了布局的CSS样式,可以使用客户端注册脚本,这样会解决页面变型的问题!

各种打开新页面的方式总结

推荐使用方法

【1】Page.RegisterStartupScript("ServiceManHistoryButtonClick", "");

【2】 Page.RegisterStartupScript("", "");

【0】最常用的打开方式

Response.Write("");

【1】直接转向新的页面,原窗口被代替;

Response.Redirect("XXX.aspx",true)

【2】原窗口保留,另外新增一个新页面;

Response.Write("")

【3】打开新的页面,原窗口被代替;

Response.Write("")

【4】打开新的页面;

Server.Transfer("XXX.aspx")

说明,常用于传递session变量的页面跳转!

【5】原窗口保留,以对话框形式打开新窗口;

Response.Write("")

【6】对话框形式打开新窗口,原窗口被代替;

Response.Write("")

【7】打开简洁窗口

Respose.Write("");

ScriptManager.RegisterStartupScript方法

如果页面中不用Ajax,cs中运行某段js代码方式可以是: Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "");

如果页面中使用了Ajax ,则上述代码即使执行也无效果。

对这种情况我们通常采用: ScriptManager.RegisterStartupScript(this.Button1, this.GetType(), "alertScript", "window.open('default2.aspx');", true);

其中第一个参数为要注册脚本的控件ID,试了一下,只要是本页面的就行。

第二个参数为注册脚本控件类型,是控件还是this的GetType()都可以,typeOf(string)也没问题.

第三个脚本函数的名字,随便起。

第四个是脚本内容。

第五个是标明是否再添加脚本标签,如果第四个参数里包含了标签,此处则为false,否则为true。

注意:aspx代码是这样的

我在Button1_Click的事件里注册脚本,一定要加红色的部分,否则总是提示不能parse什么东西!

另外,js无法干涉cs代码。所以一旦脚本注册成功,js和cs代码会互不相干的各自运行。

以上的内容来自别人的文章,现在说一下自己的使用体会:

在按钮Button1的onClick事件中注册脚本可以这样写:

ScriptManager.RegisterStartupScript(this.UpdatePanel1, Page.GetType(), System.DateTime.Now.Ticks.ToString(), "window.open('default2.aspx');", true);

页面中的红色部分也可以去掉了。

现在对第三个参数“脚本函数的名称”要特别说明一下,

如果在onClick事件中,使用该方法注册了两个脚本。如果注册的两个脚本函数的名称相同,则第二个脚本函数就不会执行。

因为脚本管理器使用此字符串来分析是否是一个已经加载过的脚本,如果加载过,将不会再次渲染。所以第二个就不会加载执行了。

使用类型、键、脚本文本和指示是否添加脚本标记的布尔值向 Page 对象注册启动脚本。

参数

type要注册的启动脚本的类型。key要注册的启动脚本的键。script要注册的启动脚本文本。addScriptTags指示是否添加脚本标记的布尔值.备注:启动脚本由它的键和类型唯一标识。具有相同的键和类型的脚本被视为重复脚本。只有使用给定的类型和键对的脚本才能使用该页面进行注册。试图注册一个已经注册的脚本不会创建重复的脚本。

调用 IsStartupScriptRegistered 方法以确定具有给定的键和类型对的启动脚本是否已经注册,从而避免不必要的添加脚本尝试。

在 RegisterStartupScript 方法的此重载中,使用 addScriptTags 参数可指示 script 参数中提供的脚本是否包装在 

RegisterStartupScript 方法添加的脚本块在页面加载完成但页面的 OnLoad 事件引发之前执行。示例<%@ Page Language="C#"%>

publicvoidPage_Load(Object sender, EventArgs e)

{//Define the name and type of the client scripts on the page.

String csname1= "PopupScript";

String csname2= "ButtonClickScript";

Type cstype= this.GetType();//Get a ClientScriptManager reference from the Page class.

ClientScriptManager cs=Page.ClientScript;//Check to see if the startup script is already registered.

if(!cs.IsStartupScriptRegistered(cstype, csname1))

{

String cstext1= "alert('Hello World');";

cs.RegisterStartupScript(cstype, csname1, cstext1,true);

}//Check to see if the client script is already registered.

if(!cs.IsClientScriptBlockRegistered(cstype, csname2))

{

StringBuilder cstext2= newStringBuilder();

cstext2.Append("

cstext2.Append("Form1.Message.value='Text from client script.'} ");

cstext2.Append("script>");

cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(),false);

}

}

ClientScriptManager Example

asp.net中Page.ClientScript.RegisterStartupScript用法小结

//ASP.NET后台页面跳转

Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "");

//后台弹出确定框

ClientScript.RegisterStartupScript(GetType(), "message", "");

//ASP.NET后台页面跳转

Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "");

Page.ClientScript.RegisterStartupScript(typeof(string), "", "");

//后台弹出文本框

ScriptManager.RegisterStartupScript(Page, typeof(string), "popUp", "window.open('rptView.aspx','打印预览','toolbar=no,location=no,scrollbars=yes,top=200px,left=200px,width=904px,height=650px')", true);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值