ymPrompt是一个很好用的替换网页确定和取消对话框的脚本.有了它我们可以弹出很漂亮的对话框.用在asp.net里要做点小技巧.原因是button的onclientclick没等用户确定就提交了.
处理的方法关键在于回发,button类型,handler的配置.直接在button1里写是不行的,那样就马上提交了.方法就是在提交前进行确认,然后由回调函数提交表单.因为dopost客户端脚本在有不是button和imagebutton等回发控件的情况下才会触发,所以加一个usesubmitbehavior属性,让客户端有dopost脚本.谁感兴趣就做个控件吧. 最后就是把按钮隐藏了.
<%@ Page Language="C#" AutoEventWireup="true" Codebehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Untitled Page</title> <script type="text/javascript" src="ymPrompt.js"></script> <link rel="stylesheet" type="text/css" href="ymPrompt.css" /> </head> <body> <form id="form1" runat="server"> <div> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" UseSubmitBehavior="false" style="display:none;" /> <input id="Button2" type="button" value="button" onclick="ymPrompt.confirmInfo({message:'信息确认框功能测试',handler:handler})" /> <script type="text/javascript"> var handler=function(){ __doPostBack('Button1',''); } </script> <%-- http://www.ajaxbbs.net/test/ymPrompt4.0/demo.html--%> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> </div> </form> </body> </html>
2,解压后,把skin文件夹拷到你的css文件夹里面,把ymPrompt.js文件拷到你的js文件夹中。
3,下面就是页面引入js和css文件夹,在
<head>
<script type="text/javascript" src="js/ymPrompt.js"></script> <link rel="stylesheet" type="text/css" href="css/skin/qq/ymPrompt.css" />
</head>
3,在页面使用,<input id="input1" onclick="ymPrompt.alert('显示的内容','宽度,要是不想设可以传null','高度要是不想设可以传null','标题',回调函数);"要是你只需要弹出简单的对话框提示用户,可以不设回调函数。如果需要用户点击的状态,确定/取消/关闭按钮被点击时会触发该回调函数并传入点击的按钮标识。如ok代表确定,cancel代表取消,close代表关闭 ,这样就可以作相应的处理。但是我们在实际的开发中,可能不能这样用,因为我们用的是服务器控件的button,我们在程序的判断中需要弹出来,这样就需要, 我们可以写一个通用的方法,传入一个弹出要显示的内容,
Response.Write("<script type='text/javascript' src='js/ymPrompt.js'></script> ");
Response.Write("<script type='text/javascript'>ymPrompt.alert('" + title + "',null,null,'抽奖活动');</script>");
就这几步,就完成了弹出漂亮对话框的效果来了。哈哈!但是有一个问题,不得不说,这个东西虽然好看,但是会影响系统的性能,建议那些对系统性能要求很高的不要轻易的使用。