zoukankan      html  css  js  c++  java
  • .net 弹窗方式

    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); 

  • 相关阅读:
    每日日报2021 3/14
    每日日报2021 3/13
    每日日报2021 3/12
    每日日报2021 3/11
    每日日报2021 3/10
    每日日报2021 3/9
    1678. Goal Parser Interpretation
    1694. Reformat Phone Number
    Amicable Pair (相亲数)
    454. 4Sum II
  • 原文地址:https://www.cnblogs.com/zyh-club/p/5018389.html
Copyright © 2011-2022 走看看