none
asp.net 在事件的方法中 当执行过程中,弹出对话框判断是否继续执行,如何写?谢谢 RRS feed

  • 问题

  •    在方法的执行过程中,弹出 类似confirm 的提示,然后让用户 点击是 ,或者否,如何写c# 代码?高人指点  谢谢
    2009年6月11日 1:31

答案

  • 你好!

    客户端:
    <asp:Button ID="btnDelete" runat="server" Text="删除" OnClick="btnDelete_Click" Font-Size="12px" OnClientClick="comfirm("是否删除?")" />

    这个是提示用户是否触发服务器端事件,在方法还没有开始前就触发了,如果当方法执行到一半,提示是否继续,这个在ASP.NET是无法实现的。
    邹俊才
    2009年6月11日 4:45
    版主
  • 如果方法是脚本中的,很好做, if (confirm(xxx))  就可以了,如果方法是服务端的很难直接实现,可以通过变通的方式实现,如将你要处理的方法分成几个方法,每个方法执行完,显示一个 按钮,点这个按钮执行下一个方法...
    知识改变命运,奋斗成就人生!
    2009年6月11日 1:39
    版主
  • 你好 你可以将你的那部分点击是才执行的代码 然后在方法执行过程中通过Page.ClientScript.RegisterStartupScript等方法 来实现向页面添加方法 比如一个checkIfWillContinue();

    在页面里边的这个javascript函数中通过
    if(confirm("是否继续?"))
    {
    document.getElementById("hiddentextBox").value='200';
    document.form1.submit();
    }

    其中的hiddenetextBox是一个hidden类型的input

    然后在页面的后台编码中的Page_Load中 判断Request.Form["hiddentextBox"]是否等于200 是的话旧执行刚才从那段方法中分离出来的代码

    不过需要注意的是 可能需要临时存储一些执行分离代码需要的一些参数等 这些应该在你那个事件的处理过程中设置好
    Denn ich gehor nur dir!坚持不懈!http://hi.baidu.com/1987raymond
    2009年6月11日 1:47
    版主
  • b/s程序不是c/s程序,你不要采取c/s的思想来做web开发,asp.net的方法都是在服务器端执行的,一个方法必须执行完毕才能输出到客户端,即使你中间进行了中断,但实际上执行的是一个完整的方法。

    所以,你可以在执行之前就弹出对话框,
    【孟子E章】
    2009年6月11日 4:52
    版主
  •    hi,
       不提倡这样写代码,你了解网络应用程序的工作原理就知道了。
    类似这样的确定提示窗口尽量在客户端使用脚本实现。
       服务段执行方法的时候,在给客户段网页谈出提示信息,本质上还是需要网络发送一次数据到客户端,这个交互过程因为是基于http协议,所以会有很多问题。
       无状态,无连接。一旦网络繁忙可能就信息丢失了。而且组赛客户端,或回调,实现你说的功能,协议基本都换为连接的.如WCF 中的回调使用的都是TCP 等协议 ~
    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://www.cnblogs.com/frank_xl
    2009年6月11日 4:57
    版主

全部回复

  • 如果方法是脚本中的,很好做, if (confirm(xxx))  就可以了,如果方法是服务端的很难直接实现,可以通过变通的方式实现,如将你要处理的方法分成几个方法,每个方法执行完,显示一个 按钮,点这个按钮执行下一个方法...
    知识改变命运,奋斗成就人生!
    2009年6月11日 1:39
    版主
  • 你好 你可以将你的那部分点击是才执行的代码 然后在方法执行过程中通过Page.ClientScript.RegisterStartupScript等方法 来实现向页面添加方法 比如一个checkIfWillContinue();

    在页面里边的这个javascript函数中通过
    if(confirm("是否继续?"))
    {
    document.getElementById("hiddentextBox").value='200';
    document.form1.submit();
    }

    其中的hiddenetextBox是一个hidden类型的input

    然后在页面的后台编码中的Page_Load中 判断Request.Form["hiddentextBox"]是否等于200 是的话旧执行刚才从那段方法中分离出来的代码

    不过需要注意的是 可能需要临时存储一些执行分离代码需要的一些参数等 这些应该在你那个事件的处理过程中设置好
    Denn ich gehor nur dir!坚持不懈!http://hi.baidu.com/1987raymond
    2009年6月11日 1:47
    版主
  • 你好!

    客户端:
    <asp:Button ID="btnDelete" runat="server" Text="删除" OnClick="btnDelete_Click" Font-Size="12px" OnClientClick="comfirm("是否删除?")" />

    这个是提示用户是否触发服务器端事件,在方法还没有开始前就触发了,如果当方法执行到一半,提示是否继续,这个在ASP.NET是无法实现的。
    邹俊才
    2009年6月11日 4:45
    版主
  • b/s程序不是c/s程序,你不要采取c/s的思想来做web开发,asp.net的方法都是在服务器端执行的,一个方法必须执行完毕才能输出到客户端,即使你中间进行了中断,但实际上执行的是一个完整的方法。

    所以,你可以在执行之前就弹出对话框,
    【孟子E章】
    2009年6月11日 4:52
    版主
  •    hi,
       不提倡这样写代码,你了解网络应用程序的工作原理就知道了。
    类似这样的确定提示窗口尽量在客户端使用脚本实现。
       服务段执行方法的时候,在给客户段网页谈出提示信息,本质上还是需要网络发送一次数据到客户端,这个交互过程因为是基于http协议,所以会有很多问题。
       无状态,无连接。一旦网络繁忙可能就信息丢失了。而且组赛客户端,或回调,实现你说的功能,协议基本都换为连接的.如WCF 中的回调使用的都是TCP 等协议 ~
    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://www.cnblogs.com/frank_xl
    2009年6月11日 4:57
    版主