Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('请输入正确的用户名和密码!');</script>");

在.NET WEB应用上弹出消息框,我试验成功的有下面的几种,若有其他方法,望您不吝赐教。
1.只弹出提示消息。
        方法一:
          string script = "<script> alert('删除成功!') </script>";
         Page.RegisterStartupScript("",script);
        方法二:
         Response.Write("<script>alert('删除成功!')</script>");
        方法三:
         同下面的方法一。
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", "<script>window.open('" + url + "');</script>"); 
【2】 Page.RegisterStartupScript("", "<script>alert('投票成功,感谢您的参与!')</script>");
 
【0】最常用的打开方式
 Response.Write("<script language='javascript'>window.open('"+ url+"');</script>");
【1】直接转向新的页面,原窗口被代替;
 Response.Redirect("XXX.aspx",true)
【2】原窗口保留,另外新增一个新页面;
 Response.Write("<script>window.open('XXX.aspx','_blank')</script>")
【3】打开新的页面,原窗口被代替;
 Response.Write("<script>window.location='XXX.aspx'</script>")
【4】打开新的页面;
 Server.Transfer("XXX.aspx")
  说明,常用于传递session变量的页面跳转!
【5】原窗口保留,以对话框形式打开新窗口;
 Response.Write("<script>window.showModelessDialog('XXX.aspx')</script>")
【6】对话框形式打开新窗口,原窗口被代替;
 Response.Write("<script>window.showModelDialog('XXX.aspx')</script>")
【7】打开简洁窗口
Respose.Write("<script language='javascript'>window.open('"+url+"','','resizable=1,scrollbars=0,status=1,menubar=no,toolbar=no,location=no,     menu=no');</script>");

ScriptManager.RegisterStartupScript方法

如果页面中不用Ajax,cs中运行某段js代码方式可以是: Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>window.open('default2.aspx')</script>");

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

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

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

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

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

第四个是脚本内容。

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

注意:aspx代码是这样的

<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox runat="server" ID="TextBox2" >
</asp:TextBox>
<asp:Button runat="server" Text="Button" ID="Button1" onClick="Button1_Click" />
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="Button1" />
</Triggers>
</asp:UpdatePanel>
</div>

我在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.ClientScript.RegisterStartupScript()方法

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

参数

type

要注册的启动脚本的类型。

key

要注册的启动脚本的键。

script

要注册的启动脚本文本。

addScriptTags

指示是否添加脚本标记的布尔值.

备注:

启动脚本由它的键和类型唯一标识。具有相同的键和类型的脚本被视为重复脚本。只有使用给定的类型和键对的脚本才能使用该页面进行注册。试图注册一个已经注册的脚本不会创建重复的脚本。

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

在 RegisterStartupScript 方法的此重载中,使用 addScriptTags 参数可指示 script 参数中提供的脚本是否包装在 <script> 元素块中。将addScriptTags 设置为 true 指示脚本标记将自动添加。

RegisterStartupScript 方法添加的脚本块在页面加载完成但页面的 OnLoad 事件引发之前执行。

示例

<%@ Page Language="C#"%>
<script runat="server">
public void Page_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 = new StringBuilder();
cstext2.Append("<script type=text/javascript> function DoClick() {");
cstext2.Append("Form1.Message.value='Text from client script.'} </");
cstext2.Append("script>");
cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false);
}
}
</script>
<html>
<head>
<title>ClientScriptManager Example</title>
</head>
<body>
<form id="Form1"
runat="server">
<input type="text" id="Message"> <input type="button" value="ClickMe" onclick="DoClick()">
</form>
</body>
</html>

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

//ASP.NET后台页面跳转

Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>if(confirm('保存成功!是否继续添加?')){location.href='ProductonAdd.aspx'}else{location.href='ProductonList.aspx'}</script>");

//后台弹出确定框

ClientScript.RegisterStartupScript(GetType(), "message", "<script>alert('请正确输入!');</script>");

//ASP.NET后台页面跳转

Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>alert('数据添加成功!');{location.href='ProductonList.aspx'}</script>");

Page.ClientScript.RegisterStartupScript(typeof(string), "", "<script>window.location.href='AdminMain.aspx';</script>");

//后台弹出文本框
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);

.net 弹窗方式的更多相关文章

  1. JavaScript-浏览器的三种弹窗方式

    //BOM 弹窗 //同步 阻断 alert("alert弹窗"); //返回布尔值 (是/否) var bcf = confirm("confirm弹窗"); ...

  2. JavaScript-三种弹窗方式

    0918自我总结 JavaScript-三种弹窗方式 一.alert 带内容的弹框 用法: <script> alert('弹窗显示的内容') //会弹出框没有点确定不会执行下面的代码会发 ...

  3. C# Winform右下角弹窗方式

    [方法一] 第一步:winform项目创建完成后,添加一个窗口,命名为:Messages .(加上最开始的Form1,一共为两个窗口),双击主窗口进入后台代码 . 第二步:在Messages 窗口中添 ...

  4. Android重构与设计之路,从整理提示弹窗(SmartAlertPop)开始

    封装一个独立弹窗Module,这里的弹窗包括普通的Dialog方式弹框和WindowManager方式弹窗.提供一种管理项目里面弹窗的方案,便于后期修改和维护. 首先描述一个在大项目中普遍存在的一个现 ...

  5. 自己动手丰衣足食,h5手机端jquery弹窗插件(事件冒泡、单例模式、遮盖部分禁止默认滚动)

    感谢浏览,欢迎交流=.= 公司开发微信网页多处需要使用弹窗,使用jquery-ui的定制化下载仍需要150多kb,想来有些奢侈(最终下来只有11kb,压缩后2kb,啊,我的神), 手机端弹窗方式与pc ...

  6. 项目期复习:JS操作符,弹窗与调试,凝视,数据类型转换

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/huangyibin628/article/details/26364901 1.JS操作符 ① 除法 ...

  7. Js:弹窗剧中

    js变量设置 var iWidth = $(window).width() * 0.9; var iHeight = $(window).height() * 0.9; - iHeight) / ; ...

  8. VSTO之WPF和Winform弹窗

    写插件弹窗是肯定要有的,有弹窗才有展示功能的页面啊! 记录一下前段时间遇到的一些弹窗方面的坑,一个个踩过来也是收获颇丰啊! WPF弹窗 最简单的弹窗方式,new一个窗体,然后调用Show方法. Win ...

  9. [Aaronyang]谈谈2015年AY对WPF全面技术总结40多篇WPF,炫到没朋友的AYUI来了

             原著:AY WPF博客- 把wpf推广出去,让那些鄙视的人说不 大家好! 我是AY,首先声明,我在做一件很枯燥的事情,我是个91后程序员,每天熬夜完成计划的过着下班后的生活. 那天有 ...

随机推荐

  1. BZOJ 1114 Number theory(莫比乌斯反演+预处理)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=71738 题意:给你一个整数序列a1, a2, a3, ... , ...

  2. iOS自动自动隐藏软键盘

    自动隐藏软键盘,分为两步,一个是单击软键盘外部任意空间:另外一个是单击软键盘上的return键.下面依次实现 单击软键盘外部空间键隐藏软键盘: 一:在viewDidLoad中添加一个UITabGest ...

  3. 2.PHP 教程_PHP 安装

    您需要做什么? 找一个支持PHP和MySQL的主机 在您自己的PC机上安装web服务器,然后安装PHP和MySQL 使用支持PHP的Web的主机 如果您的服务器支持PHP,那么您不需要做任何事情. 只 ...

  4. Symfony框架系列----1.入门安装

    一.安装    (1)Composer安装(可选) $ curl -s https://getcomposer.org/installer | php $ php composer.phar crea ...

  5. bzoj 1042: [HAOI2008]硬币购物 dp+容斥原理

    题目链接 1042: [HAOI2008]硬币购物 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1706  Solved: 985[Submit][ ...

  6. STM32关于优先级设定的理解 NVIC_SetPriority()

    Systick模块初始化配置函数(Systick_config)中设定模块中断优先级的函数为: NVIC_SetPriority((SysTick_IRQn, (1<<__NVIC_PRI ...

  7. Linux下shell编程实例

    1. 推断一文件是不是块或字符设备文件.假设是将其复制到 /dev 文件夹下 read -p "input a file:" filename if [ -b $filename ...

  8. 基于maven插件的缓存控制插件

    asset-cache-control github源码及下载地址: https://github.com/StruggleBird/asset-cache-control 基于maven插件的缓存控 ...

  9. 【转】Tomcat7.0.42源代码运行环境搭建

    转自:http://tyrion.iteye.com/blog/1903608 以前看过Tomcat5的一部分源代码,当时只看了个大概的启动分析,后来看了<How Tomcat Works> ...

  10. Java学习02

    Java学习02 1.导入内部的包 一.在包的下面加入下面一句话: import    java.util.Scanner; 二.在类中 Scanner input=new     Sanner(Sy ...