ASP.NET中的对话框,怎么这么麻烦?

mtxxm1226 2017-03-02 11:57:05
想在一定条件下弹出一个对话框,带有“确定”,“取消”,单击“确定”时执行一段代码,单击“取消”时返回,查了很多的资料都没搞好,用了registerstartupscript还是不行,请高手指点。
...全文
816 26 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
mtxxm1226 2017-03-25
  • 打赏
  • 举报
回复
谢谢各位的回复,问题解决了,现把代码贴出来,供大家参考: 第一步,添加两个按钮Button8,和Button9,并设置为隐藏style="display:none;" 第二步,注册一个对话框; ClientScript.RegisterStartupScript(GetType(), "", "<script language=javascript> if(confirm('" + mymsg + "')==true){document.getElementById('" + Button8.ClientID + "').click();}else{document.getElementById('" + Button9.ClientID + "').click();}</script>"); 第三步,添加用户单击后要执行的代码 如果单击“确定”,执行以下代码: protected void Button8_Click(object sender, EventArgs e)//藏按钮Button8的单击事件 { 你需要执行的代码; } 单击“取消”,执行以下代码: protected void Button9_Click(object sender, EventArgs e)//藏按钮Button9的单击事件 { 你需要执行的代码; }
CaRrot_Love 2017-03-13
  • 打赏
  • 举报
回复


          $.ajax({ 
                 type: "POST",
                 dataType: "json",
                 url: 'xxx.ashx',//判断是否存在
                 data: "id=?"
                 success: function(data) {  
                   if(data.IsExist)
                   {
                            if(confirm('确认要这么做吗?'))
                             {
                                 //你要做的事
                             }
                   }
                 }
             }); 
_Joker_ 2017-03-11
  • 打赏
  • 举报
回复
一般遇到这种需求,我都是用ajax来做的。
孟子E章 2017-03-11
  • 打赏
  • 举报
回复
你这是以C/S的思路做B/S应用的吧。两者是不同的,B/S是无状态的。上面的都总结的很好了
丰云 2017-03-10
  • 打赏
  • 举报
回复
这跟asp.net有什么关系??
Hertz_liu 2017-03-10
  • 打赏
  • 举报
回复
抱歉,上面conform是错误的,应该是confirm
Hertz_liu 2017-03-10
  • 打赏
  • 举报
回复
类似于这样,可以使用第三方插件,比如layer

layer.conform('是否确认操作',function(index){
     //do something if you click ok
},function(index){
    //do something if you click cancel
});
想要执行后台代码,可以在注释位置使用ajax
mtxxm1226 2017-03-08
  • 打赏
  • 举报
回复
自己顶一下!
快乐起航2020 2017-03-08
  • 打赏
  • 举报
回复
这个很多前台框架都有 譬如 easyui ligerui等 dialog之类的插件
  • 打赏
  • 举报
回复
像这种要确认的,一般不适合web这种一次性请求的场景,对于这样的,一般是需要配合ajax处理,如果还想通过控件方式的话,就是js触发后发事件(也可以是js触发按钮click事件之类) 纯控件方式的话,假定你要点击的按钮bt,那么可以在通过判定条件下来注册客户端的事件
if(xxx/*判定条件*/)
{
bt.Attributes.Add("onclick","if(confirm('确认要这么做吗?')){$('#btHidden').click();}")
}
这里$('#btHidden')是jquery写法,那段代码就是触发btHidden这个按钮的点击事件,以此来触发回发后台事件 当然如果你是按钮只是要做个确认,如果通过就执行按钮自身的功能,那么直接下面这样就可以
if(xxx/*判定条件*/)
{
bt.Attributes.Add("onclick","return confirm('确认要这么做吗?');")
}
mtxxm1226 2017-03-06
  • 打赏
  • 举报
回复
[quote=引用 11 楼 sp1234 的回复:] [quote=引用 5 楼 mtxxm1226 的回复:] 我以前写过一个例子:http://bbs.csdn.net/topics/360064587 我看了你写的例子 using System; using System.Web.UI; public partial class _Default : System.Web.UI.Page, IPostBackEventHandler { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) ScriptManager.RegisterStartupScript(this, this.GetType(), "confirm", "if(confirm('你确定1+1=2吗?'))" + this.ClientScript.GetPostBackEventReference(this, "确定") + "; else " + this.ClientScript.GetPostBackEventReference(this, "不确定"), true); } public void RaisePostBackEvent(string eventArgument) { string res; switch (eventArgument) { case "确定": res = "太有才了!"; //处理各种后台任务 break; case "不确定": res = "是块当实习生的料。"; //处理各种后台任务 break; default: throw new NotSupportedException(); } ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('" + res + "');", true); } } 但是public void RaisePostBackEvent(string eventArgument)这个函数好像没有起作用,请问怎么回事?
bwangel 2017-03-06
  • 打赏
  • 举报
回复
web是请求响应机制。在浏览器弹出对话框时,服务端已经响应完毕,该执行的都执行完了。 所以不要想到用客户端的对话框来控制服务端代码的分支。 你要做的是一次性把记录是否存在的信息提前返回给浏览器端,然后浏览器用脚本判断。
  • 打赏
  • 举报
回复
楼主的意思是在服务端查询了直接返回一个二次确认的对话框吧?用ajax做吧 !.
  • 打赏
  • 举报
回复
引用 1 楼 jjkk168 的回复:
if(confirm('AAA')) { alert('Yes'); } else { alert('No'); }
lz 问的其实是在 asp.net 中的代码。
  • 打赏
  • 举报
回复
引用 楼主 mtxxm1226 的回复:
用了registerstartupscript还是不行
不是不行,而是它只做了一小半工作。你只是抛出去一个球,却永远捡不回来了,不知到如何处理。 想要“行”最起码地要“完全”地有一个流程机制,不能只抓皮毛。
  • 打赏
  • 举报
回复
引用 5 楼 mtxxm1226 的回复:
想向数据中插入一条记录,首先查询要插入的记录是否存在,如果要插入的记录已经存,就弹出一个对话框询问是不要继续插入,单击“确定”则继续插入,单击“取消”则返回?
我以前写过一个例子:http://bbs.csdn.net/topics/360064587 你在 asp.net 程序运行中,要让用户“确认一下”,这本身就比较麻烦。而且你应该在一开始学习中就认识到这个麻烦。 在 winform 中你可能写 MessageBox.Show 来阻塞一个模态对话框(或者是自定义的模态窗口来获得更多用户输入交互),通过阻塞整个 UI 程序来“死等”用户选择。 但是 web 根本不是这样的机制,你阻塞 asp.net 端程序不但不能让用户响应录入,而且还把自己的 asp.net 程序给堵死了、不能输出 html 了。所以没用。所以要按照 web、按照 asp.net 的机制去设计程序,不能想当然地了。
Poopaye 2017-03-03
  • 打赏
  • 举报
回复
引用 6 楼 mtxxm1226 的回复:
if (记录已经存在) { 弹出对话框 if =“确定” {继续插入} else return } 就实现以上功能,请指点!
因为是网站之间交互,不是你在本地弹个对话框就了事了。其实要分成: 1、if (记录已经存在) 2、通知浏览器弹出对话框 3、浏览器传回点击的结果 4、if确定,继续插入 其中2和3两步可能一个在北极,一个在南极,你觉得用“弹出对话框”这样概括妥当吗?
  • 打赏
  • 举报
回复
用一些第三方插件吧,简单好看。http://www.layui.com/doc/modules/layer.html
  • 打赏
  • 举报
回复
1.点击提交按钮,通过ajax判断记录是否存在 2.如果存在,在前台通过js弹出确认操作框
chi742658817 2017-03-02
  • 打赏
  • 举报
回复
那你怎么用的registerstartupscript? 又怎么查的资料? 把你代码贴上来.
加载更多回复(6)

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧