zoukankan      html  css  js  c++  java
  • 艾伟_转载:获取confirm返回值的故事 狼人:

      也许很多人看了这个标题就会不屑看下去,大可以说网上多的去了这种问题的文章,的确,当我碰到这个问题的时候,我也首先在网上找了很多资料,但是没有合适的,或者说没有讲的清晰的,而后,我又问了几个牛人,以及几位同事,也都没有搞懂,后来在我老大的帮助下,最终还是解决了,所以我觉得有这个必要写出来给大家分享下~

      废话说了这么多,还是直奔主题吧~
      我的要求是这样的,页面上有个表单,表单的内容是绑定数据库的,需要动态刷新的,而后有个按钮——save,点击之后为保存到数据库——Insert_Save(),又有个按钮submit,点击之后直接提交到数据库Insert_Submit(),两者的区别是插入到不同的表中,现在我要设计这个保存按钮,要求经过2个函数的判断,才能够执行insert,分别是Ckeck_Empty()以及Check_Formal(),即检测是否全填了和格式是否都正确,这两个方法都在后台完成了,现在的任务就是,在点击save按钮之后,需要弹出confirm选择框,“是否需要直接提交?”,如果点击“是”,则执行与submit按钮相同的操作,若否则进行save操作,那我如何才能把confirm的值保存下来呢?
      很多人可能这么想:(因为要求在后台执行)
      ScriptManager.RegisterStartupScript(
      this.Page,
      this.Page.GetType(),
      this.ClientID,
      "<script language=\"javascript\" type=\"text/javascript\" >
      if(confirm('需要直接提交吗?'))
      {
        Insert_Save()
      }
      else
      {
        Insert_Submit()
      }
      </script>" ,
      false);
      然后再实际的操作当中,却发现了这个弹出框到了所以操作最后才执行,也就是说,我并没有执行所谓的询问操作而直接根据默认状态insert到数据库了,原因很简单,因为首先执行的是服务器端,然后才执行客户端~因此此方法不能解决.
      而后,我又在网上看到了将返回值保存到session或者cookie的方法,原本应该是可以的,但是我上述几个函数都是需要传入其他参数(datarow,type_name等),因此如果使用session和cookie则这些传入参数将会取不到~
      最后,实在没办法了,就只好去问老大,后来老大苦思冥想,终于想到个小窍门————通过隐藏按钮赋值的方法把confirm的返回值重新传到前台:即在页面上放一个隐藏按钮btn_hide,width设为0,visible设为false,然后将原本save的触发事件里confirm的返回值存到btn_hide.value中,然后将insert到数据库的操作放到btn_hide的触发事件中,将需要传入的dr以及type——name放在session中,即将数据库录入的操作存放在btn_hide_Click()中,也就是通过注册隐藏按钮事件的方法,来解决传值问题~

      也许你不一定遇的到像我这种棘手的情况,但是也许你也会碰到,上述的方法并不是最佳的解决情况,一定有牛人有更好的方法解决,这里只是小白的拙见,但是也想贴出来和大家分享一下~一起进步~

  • 相关阅读:
    Ios 从无到有项目 MVVM模式(两)
    国外论文搜索
    memcpy的使用方法总结
    简单工厂模式
    curl命令具体解释
    java.lang.Math中的基本方法
    海量数据处理面试题集锦
    BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 文件夹
    TinyXml高速入门(一)
    Android SDK 2.2 离线安装
  • 原文地址:https://www.cnblogs.com/waw/p/2157158.html
Copyright © 2011-2022 走看看