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. hrtimer 高精定时器使用例子

    在kernel,有个线程每个十秒往上层系统上报battery及USB的状态信息. 加入直接sleep 10 秒的话,插入USB的时候不能及时更新状态,这个时候就可以使用 hrtimer + wait ...

  2. 我的Python成长之路---第一天---Python基础(4)---2015年12月26日(雾霾)

    五.数据运算与数据运算符 1.算术运算符 算术运算符 运算符 描述 示例 + 加法 >>> 14 - 5 9 - 减法 >>> 14 - 5 9  *  乘法 &g ...

  3. C# Regex ignoring non-capturing group

    E.g I want match the keword "3398" after "red" from the string "This is red ...

  4. SubLime2 win + mac keygen

    参考 http://www.cnblogs.com/snandy/archive/2013/05/08/3068059.html http://www.freebuf.com/tools/6434.h ...

  5. cocos2d-x中的尺寸之二

    接下来我们再做些坏事,比如给EGLView设置分辨率,代码如下: pEGLView->setDesignResolutionSize(240, 320, kResolutionExactFit) ...

  6. Windows Azure 网站自愈

    编辑人员注释:本文章由 Windows Azure 网站团队的项目经理Apurva Joshi 撰写. 您有多少次在半夜被叫醒去解决一个仅需重新启动网站即可解决的问题?要是可以自动检测一些状况并自动恢 ...

  7. Windows平台下C++插件系统实现的几个关键技术问题及其解决思路

    根据我的实践,在Windows平台下设计并实现一个C++插件系统,需要解决几个关键技术问题.下面我谈谈需要解决的几个关键技术问题以及我想到的简单的解决思路.由于我主要专注于Windows平台C++程序 ...

  8. HTTP基本协议(查看网页代码)

    此示例已实现查看网页的代码来理解HTTP基本协议: (返回的是百度首页的网页代码) import java.io.BufferedReader; import java.io.IOException; ...

  9. 【从0開始Tornado建站】群聊

    群聊的前台主要代码: {%block content%} <!--<p class='text-success h3'>測试版本号,每天凌晨4:00清水,enjoy it~~:-)& ...

  10. 基于表单的身份验证(FBA)

    https://technet.microsoft.com/zh-cn/library/ee806890(office.15).aspx http://www.tuicool.com/articles ...