CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

如何添加Confirm消息框?

楼主super_grace(琦琦)2006-06-01 09:42:57 在 .NET技术 / ASP.NET 提问

看了一些资料,都是给Button添加Confirm消息框。我现在想要一个没有Button触发的的Confirm消息框,它可能是通过判断一个函数的返回值来自动弹出的Confirm消息框。这样可行吗?请各位高手指点! 问题点数:20、回复次数:47Top

1 楼hanbb1982(粤饶字号@0768)回复于 2006-06-01 09:51:23 得分 1

response.write("<script>return   Confirm("test")</script>")Top

2 楼super_grace(琦琦)回复于 2006-06-01 10:00:47 得分 0

好像不行啊,兄弟,我一运行程序都死翘翘了。你肯定这样可以吗?  
  再有更正一下这句话:Response.Write("<script>return   Confirm('test');</script>")Top

3 楼lazyfish(呆呆虫)回复于 2006-06-01 10:12:46 得分 1

Button.Attributes["onclick"]   =   "if(confirm('are   you   sure?'))";Top

4 楼jijl2001(jijl2001)回复于 2006-06-01 10:13:27 得分 0

楼上正解Top

5 楼super_grace(琦琦)回复于 2006-06-01 10:14:22 得分 0

补充一点:弹出Confirm消息框后,我还想抓到用户的选择信息,即当选择确定的时候我会执行一定的操作。谁知道该怎么做呢?Top

6 楼super_grace(琦琦)回复于 2006-06-01 10:17:51 得分 0

呆呆虫:  
  我并不是想要由button触发的Confirm,你再看一下我的问题吧。Top

7 楼zjysky(音乐啤酒)回复于 2006-06-01 10:52:36 得分 1

response.write("<script   language=javascript>return   Confirm("test")</script>")  
  Top

8 楼super_grace(琦琦)回复于 2006-06-01 11:08:15 得分 0

这样也不行,没有任何反应呢,都没有弹出Confirm消息框。Top

9 楼super_grace(琦琦)回复于 2006-06-01 14:15:15 得分 0

好像大家对这个问题没什么解决的办法。  
  我想了个笨的办法是这样:既然Confirm只能由Button触发,那我就把一个隐藏的Button放在页面上等待触发。现在的问题就变成了,我并不能真的Click那个隐藏的Button,而直接调用它的Click事件也不行,因为那样就等于根本没有弹出Corfirm让用户选择,而是直接默认用户选择为‘确定’了。所以,我觉得唯一的办法就是通过改变Button的属性值(比如Clicked什么的),让它得到触发,从而调用Click事件。可是找来找去,并没有发现类似Clicked的属性,事情又陷入困境了。  
  恳请高手回答,我该怎么做呢?我想实现的这个能做到吗?Top

10 楼heyidan(gopee)回复于 2006-06-01 14:37:43 得分 1

把confirm("sfdsfsdf","ksdfj")函數添加到要進行判斷的if語句裏即可,非常之easy也Top

11 楼super_grace(琦琦)回复于 2006-06-01 14:46:50 得分 0

楼上的兄弟能写个示范的例子吗?感激ing……Top

12 楼kolosi(小丑巴其)回复于 2006-06-02 09:18:36 得分 0

if(confirm('are   you   sure?'))  
  不就是么?  
  confirm这个函数返回的是个bool,很容易就判断出来了吧。  
   
  你要把他加在什么地方啊。Top

13 楼super_grace(琦琦)回复于 2006-06-02 09:38:52 得分 0

confirm不是javascrip的函数吗?不能直接用吧。  
  我想这么用,请看:  
  private   void   Btn_del_Click(object   sender,   System.EventArgs   e)  
  {  
  CheckBox   chk;  
  foreach(DataGridItem   dgi   in   DGrd.Items   )  
  {  
  chk=(CheckBox)dgi.Cells[0].FindControl("Chk_del");  
  if(chk.Checked==true)  
  {  
  string   Cname   =   dt.Rows[DGrd.CurrentPageIndex*DGrd.PageSize   +dgi.ItemIndex].ItemArray[0].ToString();  
  if(cs.Get_Appointed_Item(Cname).InUse   ==   false)//想要删除的Item的使用状态是“未使用”,则删除  
  {  
  cs.Del_Item(Cname);  
  }  
  else//若要删除的Item已经被使用,则提示用户,并由用户再次确认是否删除Item  
  {  
  if(Confirm("Item已经被使用,一旦删除****,是否还要删除所选的Item?"))  
  {  
  cs.Del_Item(Cname);  
  }  
  }  
  }  
  }  
  }  
   
  但是这样使用Confirm(“×××”)根本不行,编译时会提示"Confirm在类或命名空间“×××××”中不存在"。还请高手指定,应该怎么用?Top

14 楼hui1202(骨灰)回复于 2006-06-02 09:42:53 得分 0

。。。。comfirm是脚本语言Top

15 楼kissdeath(落叶飘香)回复于 2006-06-02 09:46:04 得分 2

if(a())  
        Response.write("<script   language=javascript>return   confirm("test")</script>")  
  其中a()是你的函数Top

16 楼kissdeath(落叶飘香)回复于 2006-06-02 09:48:50 得分 0

更正:  
   
  if(a())  
        Response.write("<script   language=javascript>return   confirm('test');</script>")  
  其中a()是你的函数Top

17 楼kissdeath(落叶飘香)回复于 2006-06-02 09:50:33 得分 0

二次更正  
  if(a())  
        Response.write("<script   language=javascript>confirm('test');</script>")  
  其中a()是你的函数  
  Top

18 楼kolosi(小丑巴其)回复于 2006-06-02 09:52:21 得分 0

这样肯定不行,你这个程序的逻辑有问题。  
   
  要么你就让客户1条1条的删除。  
  要么你就所有记录一起check。  
   
  你这么做能不能实现不说,客户肯定会烦死的。  
   
  如果非要这么做的话,那就用js来一起check,然后把check的结果一起传回去。Top

19 楼lcddjyy(鲁哆哆)回复于 2006-06-02 10:03:09 得分 0

学习中!Top

20 楼zhangxiaopin(zxp)回复于 2006-06-02 10:04:59 得分 2

//*****例子,用户在操作某一页面里,用户保存数据成功时,用可能选择查看才保存的数据,以便数据保存的正确性,有可能不查看。  
   
  //*****后台调用,前台函数  
   
  //*****javascript   math  
   
   
  function   SeeUserCommentInfo(varurl)  
  {  
        if(window.confirm("请确认是否查看用户信息!")==false)   return   false;  
        window.open(varurl,"onices","width=200,height=400");  
  }  
   
  //*****cs   code  
   
  page.registerstartscript("onclick","<script>SeeUserCommentInfo('frmlist.aspx');</script>");Top

21 楼super_grace(琦琦)回复于 2006-06-02 10:09:11 得分 0

kolosi(小丑巴其)   :  
  因为我要删除的Item数量极其有限,所以不必考虑客户烦的问题了。  
  我现在最主要的问题在于,我不知道该如何调用一个不需要Button触发的Confirm消息框,因为我在删除操作之前,必须再次确认用户的意图,避免他的误操作。Top

22 楼chentianfen(yi)回复于 2006-06-02 10:09:12 得分 0

楼上所说的,都行Top

23 楼super_grace(琦琦)回复于 2006-06-02 10:14:47 得分 0

kissdeath(落叶飘香):  
  你的意思是,我先执行了我的函数,再弹出Confirm消息框,是吗?  
  这样并不是我想要的结果。  
  我是想先让用户确认,如果他“确定”了,我再执行我的函数,即删除操作。Top

24 楼super_grace(琦琦)回复于 2006-06-02 10:21:53 得分 0

zhangxiaopin(zxp)   :  
  你是自己写了一个javascrip函数,然后onclick的时候触发调用,是吧?  
  我也知道这个方法可行,但它不是我需要的,因为我不可能通过任何控件来触发调用Confirm等的函数。如果要真能那样,问题就简单了。你再仔细看看我的求助问题吧,期待你好的建议!Top

25 楼zhangxiaopin(zxp)回复于 2006-06-02 10:44:26 得分 0

 
  //****在pageload事件中,判断一下  
   
  if(!IsPostBack)  
  {  
            if(UserType==1)  
            {  
                  butDelete.Attributes.Add("onclick","javascript:if(confirm('请确认是否删除此记录!')==false)   return   false;");  
            }  
  }  
   
   
  //****删除按钮代码  
  ......  
   
  不知道你想得是不是这样的啊。  
  Top

26 楼wangyanyan(亮出宝剑)回复于 2006-06-02 11:02:43 得分 1

在执行删除前先执行,  
  Btn1.Attributes.Add("onclick","return   confirm('确定要删除?');");Top

27 楼super_grace(琦琦)回复于 2006-06-02 11:13:26 得分 0

你有点儿看懂了,但还不尽然,我再解释一下哈!  
   
  看这句   butDelete.Attributes.Add("onclick","javascript:if(confirm('请确认是否删除此记录!')==false)   return   false;");  
  这是在butDelete被click的时候才会触发的,弹出Confirm消息框,对吧?  
   
  但我需要的并不是button按钮的click触发的Confirm消息框,我想要的是在删除按钮代码中,根据调用函数的返回值,自动弹出Confirm消息框。看下面的例子:  
  //****删除按钮代码  
  ......  
  if(a()==false)  
  {  
          ......//弹出Confirm消息框  
          if(用户点击确定按钮)  
          {  
                  delete(item);//删除操作  
          }  
  }Top

28 楼super_grace(琦琦)回复于 2006-06-02 11:18:25 得分 0

wangyanyan(坚持到底):  
  我想弹出Confirm消息框的地方是写在“删除按钮代码”中的。我想在click删除Button后,并且执行了部分删除Button的click事件的代码时弹出Confirm消息框,明白了吗?Top

29 楼super_grace(琦琦)回复于 2006-06-06 09:41:36 得分 0

感谢大家提了好多建议和解决办法!  
  可是,看来看去,都似乎和我的问题不是很合拍。不知道是我说的不够清楚呢,还是我的要求根本就不能达到呢?困惑中……盼望高手搭救……Top

30 楼william_weizhen()回复于 2006-06-06 10:07:03 得分 1

用Page.RegisterStartupScript("MsgSecretary","javascript:if(confirm('请确认是否删除此记录!')==false)   return   false;")  
  在你想要弹出信息的地方写入上述代码  
  把"javascript:if(confirm('请确认是否删除此记录!')==false)   return   false;"替换成你要输出的信息Top

31 楼super_grace(琦琦)回复于 2006-06-06 11:18:41 得分 0

那么,你的方法能给我返回一个bool值吗?我还需要根据返回的值进行下一步操作。Top

32 楼super_grace(琦琦)回复于 2006-06-06 11:19:51 得分 0

那么,你的方法能给我返回一个bool值吗?我还需要根据返回值进行下一步的操作。Top

33 楼super_grace(琦琦)回复于 2006-06-06 15:57:30 得分 0

william_weizhen()   :  
  我用你的方法试了一下,为什么没有任何反应呢?Top

34 楼godwu(灵魂舞者)回复于 2006-06-08 11:06:34 得分 1

Dim   scriptBlock   As   String   =   "<script   language=""JavaScript""   type=""text/javascript"">"   &   vbCrLf  
                          scriptBlock   =   scriptBlock   &   "       var   focusObj   =   document.getElementById("""   &   controlID   &   """);"   &   vbCrLf  
                          scriptBlock   =   scriptBlock   &   "       focusObj.focus();"   &   vbCrLf  
                          scriptBlock   =   scriptBlock   &   "</script>"  
                          RegisterStartupScript("setFocus",   scriptBlock)  
   
  与上面的类似,把其中内容替换成CONFIRM即可.Top

35 楼whl1295a(whl)回复于 2006-06-08 11:26:26 得分 0

路过,瞅了瞅,,,,Top

36 楼super_grace(琦琦)回复于 2006-06-08 11:29:02 得分 0

这是VB编的吧,我不是很懂VB,我用C#。你的这段代码也可以转换成C#吗?Top

37 楼kolosi(小丑巴其)回复于 2006-06-08 12:11:51 得分 3

我想弹出Confirm消息框的地方是写在“删除按钮代码”中的。我想在click删除Button后,并且执行了部分删除Button的click事件的代码时弹出Confirm消息框,明白了吗?  
  ====================================  
  这是不可能的,对服务器端来说,javascript只是字符串而已。  
  如果先要实现这种效果,可以考虑这种方式。  
  先等一个变量  
  public   string   abc   =   "";  
   
  在加一个服务器端的hidden用来保存返回结果。  
   
  用户触发按钮事件  
  //defer是说在页面的DOM树加载完成以后执行。  
                  abc   =   @"<script   defer='defer'   type='text/javascript'>  
                                  check();  
                                  function   check()  
                                  {  
                                          if(confirm('yes   or   no'))  
                                          {  
                                                  document.getElementById('ctl00_MF_HiddenField1').value   =   'true';  
                                          }  
                                          else  
                                          {  
                                                  document.getElementById('ctl00_MF_HiddenField1').value   =   'false';  
                                          }  
                                          document.forms[0].submit();  
                                  }  
                                  </script>";  
   
  然后把<%=abc%>放在head里面。  
   
  最后在page_Load里面得到结果。  
                  if   (HiddenField1.Value   ==   "true")  
                  {  
                  //可以在这个再次给abc付值,以便得到多次check的效果。  
                  //最后处理完成以后,需要把这个页面的循环check结束掉(根据你得业务逻辑).  
                  }  
                  else   if   (HiddenField1.Value   ==   "false")  
                  {    
                   
                   
                  }Top

38 楼kolosi(小丑巴其)回复于 2006-06-08 12:14:22 得分 0

另外:defer标记只对IE有效。Top

39 楼cm8983(思远)回复于 2006-06-08 12:48:28 得分 1

到这里去把VB转成C#:  
  http://www.developerfusion.co.uk/utilities/convertvbtocsharp.aspx  
   
  你删除由什么来触发的?Top

40 楼cm8983(思远)回复于 2006-06-08 12:52:22 得分 0

这里把C#转成VB:  
  http://www.developerfusion.co.uk/utilities/convertcsharptovb.aspxTop

41 楼lookatliu(独孤常败)回复于 2006-06-12 16:51:35 得分 0

我看了半天怎么觉得lz的要求直接在web页上写javascript就行了阿,为什么还要去服务器端呐Top

42 楼super_grace(琦琦)回复于 2006-06-20 13:41:52 得分 0

能说得详细些吗?多谢!Top

43 楼caravans(沙漠)回复于 2006-06-20 13:54:26 得分 0

楼主给我的想实现的东西一样 不过告诉你 这种方法现目前不能实现 我都发了N久的贴都没一个能回答出Top

44 楼super_grace(琦琦)回复于 2006-06-20 15:07:27 得分 0

我觉得这个要求并不过分,应该可以实现的,就是不知该怎么做。难道真的没人知道吗?Top

45 楼yjbgwxf123()回复于 2006-06-29 13:44:08 得分 0

楼主,当你删除数据时,要么就删除,要么就不删除。为什么还要在删除代码运行到一定程度时才提出是否删除呢?  
  如果你有什么删除规则的话用存储过程不更好?  
  Top

46 楼illfe(陳思嘉)回复于 2006-07-24 16:54:20 得分 5

樓主,你的問題我已經遇到過  
  解決的方式為,彈出一個自己寫的小頁面,上面寫著確認/取消按鈕  
  按確認時繼續執行另外的動作    
  我的另外動作是   __doPostBack('btnOK','');執行本頁上的按鈕btnOk的動作    
  比如  
           
  literalScript.Text   =   "<script   language=JavaScript>"   +   vbCrLf   +   _  
                                            "   var   ret=window.showModalDialog('"   &   Url   &   "','_self','"   &   s   &   "');"   +   vbCrLf   +   _  
                                            "   if   (typeof(ret)   !=""undefined"")   "   +   vbCrLf   +   _  
                                            "   {   var   oValue   =   ret;   "   +   vbCrLf   +   _  
                                            "       var   oField;   "   +   vbCrLf   +   _  
                                            "   oField   =   eval(""document.all('"   +   txtValue.ClientID   +   "')"");   "   +   vbCrLf   +   _  
                                            "   oField.value   =   oValue;   "   +   vbCrLf   +   _  
                                            "   if   (oField.value   ==   1)   "   +   vbCrLf   +   _  
                                            "   {var   Fieldbtnd;"   +   vbCrLf   +   _  
                                            "   Fieldbtnd=   eval(""document.all('"   +   btnAdd.ClientID   +   "')"");"   +   vbCrLf   +   _  
                                            "   Fieldbtnd.disabled=false;"   +   vbCrLf   +   _  
                                            "   __doPostBack('btnOK','');   oField.value   =0}"   +   vbCrLf   +   _  
                                            "   }</script>   "Top

47 楼super_grace(琦琦)回复于 2006-07-28 10:27:38 得分 0

多谢大家,结贴了!可惜分有点儿少,见谅~Top

相关问题

关键词

得分解答快速导航

  • 帖主:super_grace
  • hanbb1982
  • lazyfish
  • zjysky
  • heyidan
  • kissdeath
  • zhangxiaopin
  • wangyanyan
  • william_weizhen
  • godwu
  • kolosi
  • cm8983
  • illfe

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo