zoukankan      html  css  js  c++  java
  • 【技术贴】.NET的cs文件里调用javascript一闪而过的解决方法

    【技术贴】.NET的cs文件里调用javascript方法和一闪而过的解决方法

    例子:我有一个按钮,是服务器控件,当我点击它之后,我需要往数据里面写入sql,写入完成之后返回一个结果,这个结果就用js的对话框给搞出来,我用的比较华丽点,用jquery的一个函数。所以我需要在CS里面调用这个函数,可是,因为这个按钮是服务器控件,会在点击按钮后触发回传事件,所以,当我写入这个语句Button1.Attributes.Add(“onclick”,”<script type='text/javascript'>ShowConfirm('确定','是否删除','Button4','',340,80);</script>"); ”) 的时候,一闪而过了!!

    此时 只能这样玩了。

    Page.ClientScript.RegisterStartupScript(this.GetType(), "key", "<script> ShowConfirm('确定','是否删除','Button4','',340,80);</script>");

    这样就ok了。



    另附别人的技术贴

    在cs文件里调用javascript函数的注意事项  

    2010-03-17 11:41:40|  分类:C#|  标签:|字号大中小 订阅

      http://www.cnblogs.com/yangweili/archive/2009/04/21/1440702.html

    尽管网络上调用方法很多,但经常都会出现不能执行的现象,现在列出我在应用中遇到问题:

    1.Form 必须运行在 :runat="server"

          <form id="Form1" name="myform" action="#" method="post" runat="server" >

    2.函数必须定义在head里

              <script type="text/javascript">
                  function newFile_load() {
                  alert("开始新建文档!");
                  document.all.WebOffice1.LoadOriginalFile("","doc");
                  alert("终于建好了!");
                  }
              </script>

    3.C#里要写成如下的方式

          Page.ClientScript.RegisterStartupScript(this.GetType(), "key", "<script> newFile_load();</script>");

          //下面的这个不可以

          Page.RegisterStartupScript("keys", "<script> newFile_load();</script>");

    具体的方法网上太容易找到了,我这里贴几个以供参考:

     

    1。RegisterStartupScript用法

        [C#]
        public virtual void RegisterStartupScript(
         string key,
          string script
        );
    参数    key        标识脚本块的唯一键。    script        要发送到客户端的脚本的内容。以下是一些应用实例:打开一个新窗口:    page.registerstartupscript("starup", "<script language= 'javascript'>window.open('" + url + "','','toolbar=no,resizable=yes,scrollbars=yes')</script>")警告窗口// <summary>
    // 服务器端弹出alert对话框
    // </summary>
    // <param name="str_message">提示信息,例子:"不能为空!"</param>
    // <param name="page">page类</param>
    public void alert(string str_message,page page)
    {
    page.registerstartupscript("","<script>alert('"+str_message+"');</script>");
    }重载此警告窗口,使某控件获得焦点// <summary>
    // 服务器端弹出alert对话框,并使控件获得焦点
    // </summary>
    // <param name="str_ctl_name">获得焦点控件id值,比如:txt_name</param>
    // <param name="str_message">提示信息,例子:"请输入您姓名!"</param>
    // <param name="page">page类</param>
    public void alert(string str_ctl_name,string str_message,page page)
    {
    page.registerstartupscript("","<script>alert('"+str_message+"');document.forms(0)."+str_ctl_name+".focus(); document.forms(0)."+str_ctl_name+".select();</script>");
    }确认对话框// <summary>
    // 服务器端弹出confirm对话框
    // </summary>
    // <param name="str_message">提示信息,例子:"您是否确认删除!"</param>
    // <param name="btn">隐藏botton按钮id值,比如:btn_flow</param>
    // <param name="page">page类</param>
    public void confirm(string str_message,string btn,page page)
    {
    page.registerstartupscript("","<script> if (confirm('"+str_message+"')==true){document.forms(0)."+btn+".click();}</script>");
    }重载确认对话框,点击确定触发一个隐藏按钮事件,点击取消触发一个隐藏按钮事件// <summary>
    // 服务器端弹出confirm对话框,询问用户准备转向那些操作,包括“确定”和“取消”时的操作
    // </summary>
    // <param name="str_message">提示信息,比如:"成功增加数据,单击\"确定\"按钮填写流程,单击\"取消\"修改数据"</param>
    // <param name="btn_redirect_flow">"确定"按钮id值</param>
    // <param name="btn_redirect_self">"取消"按钮id值</param>
    // <param name="page">page类</param>
    public void confirm(string str_message,string btn_redirect_flow,string btn_redirect_self,page page)
    {
    page.registerstartupscript("","<script> if (confirm('"+str_message+"')==true){document.forms(0)."+btn_redirect_flow+".click();}else{document.forms(0)."+btn_redirect_self+".click();}</script>");
    }
    获得焦点// <summary>
    // 使控件获得焦点
    // </summary>
    // <param name="str_ctl_name">获得焦点控件id值,比如:txt_name</param>
    // <param name="page">page类</param>
    public void getfocus(string str_ctl_name,page page)
    {
    page.registerstartupscript("","<script>document.forms(0)."+str_ctl_name+".focus(); document.forms(0)."+str_ctl_name+".select();</script>");
    }子窗体返回主窗体

    //<summary>
    //名称:redirect
    //功能:子窗体返回主窗体
    //参数:url
    //返回值:空
    //</summary>
    public void redirect(string url,page page)
    {
    if ( session["ifdefault"]!=(object)"default")
    {
    page.registerstartupscript("","<script>window.top.document.location.href='/webjx/"+url+"';</script>");
    }
    }  

    转自 http://helloouc.blog.163.com/blog/static/553052712010217114140869/?latestBlog

  • 相关阅读:
    Python自动化交易学习笔记(九)——将添加佣金数据,来使回测更逼近与真实交易。
    python自动化交易学习笔记五-Demo8-策略已经设置了买入条件-设置卖出条件
    python自动化交易学习笔记(四)第一个策略回测程序Demo7(添加买入条件-当股价连续下跌2天后买入)
    python量化交易学习笔记(三)——第一个策略回测程序Demo6
    取sql server 图片二进制流
    JDBC连接sql取数据
    量化交易学习笔记(二)-实例化Cerebro引擎-代理已经手握一笔资金准备进行交易
    maven本地化jbarcode-0.2.8.jar
    量化自动化交易python学习笔记之(一)BaoStock使用A股K线数据股票代码sh.60000,四年历史数据,用于后期追溯测试和策略可行性
    Angularjs插件ui-select的使用方法
  • 原文地址:https://www.cnblogs.com/ae6623/p/4416785.html
Copyright © 2011-2022 走看看