两种WEB下的模态对话框 (asp.net或js的分别实现)


Posted in Javascript onDecember 02, 2009

在这里我给大家介绍或者说是展示一下我自己的做的两种模态对话框
两种WEB下的模态对话框 (asp.net或js的分别实现)
方法一
本方法是采用ASP.NET AJAX的扩展控件:ASP.NET AJAX Control Tool Kit中的ModalPopupExtender控件实现的:
第一步,我们先创建一个ASP.NET页面:ModalPopup.aspx
页面代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxControlToolkit.aspx.cs" 
Inherits="_Default" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %> 
<!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></title> 
<style type="text/css"> 
.p_Login 
{}{ 
width: 230px; 
height: 180px; 
padding: 15px 15px 15px 15px; 
background-color: #fff; 
border: 2px solid #ccc; 
} 
.Password 
{}{ 
margin-left: 15px; 
} 
.ModalPopupBackground 
{}{ 
background-color:#dddddd; 
filter:alpha(opacity=60); /**//*IE*/ 
opacity:60; /**//*Firefox*/ 
} 
</style> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 
<asp:LinkButton ID="lbtn_Login" runat="server">登陆</asp:LinkButton> 
<%--panel的display的CSS属性必须写在标签里面。--%> 
<asp:Panel ID="p_Login" CssClass="p_Login" runat="server" Style="display: none;"> 
 <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
<ContentTemplate> 
<p> 
用户名:<asp:TextBox ID="UserName" runat="server"></asp:TextBox> 
</p> 
<p> 
密码:<asp:TextBox ID="Password" runat="server" CssClass="Password" TextMode="Password"></asp:TextBox> 
</p> 
<p> 
<asp:Button ID="Btn_Submit" runat="server" Text="登录" OnClick="Btn_Submit_Click" /> 
<asp:Button ID="Btn_Cancel" runat="server" Text="取消" OnClick="Btn_Cancel_Click" /> 
</p> 
<p> 
<asp:Label ID="lbResult" runat="server" Text=""></asp:Label> 
<p> 
</ContentTemplate> 
</asp:UpdatePanel> 
</asp:Panel> 
<cc1:ModalPopupExtender ID="ModalPopupExtender1" 
PopupControlID="p_Login" 
TargetControlID="lbtn_Login" 
BackgroundCssClass="ModalPopupBackground" 
runat="server"> 
</cc1:ModalPopupExtender> 
</div> 
</form> 
</body> 
</html> 
[code] 
后台代码: 
[code] 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
public partial class _Default : System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
} 
protected void Btn_Submit_Click(object sender, EventArgs e) 
{ 
if (this.UserName.Text.Trim().ToUpper() == "JACKY" && this.Password.Text.Trim() == "123") 
{ 
this.lbResult.Text = "登陆成功!"; 
} 
else 
{ 
this.lbResult.Text = "登录失败!"; 
} 
} 
protected void Btn_Cancel_Click(object sender, EventArgs e) 
{ 
this.ModalPopupExtender1.Hide(); 
this.UserName.Text = ""; 
this.Password.Text = ""; 
this.lbResult.Text = ""; 
} 
}

就这样,通过很简单的扩展控件就实现了模态对话框的效果,但是,我后来想了想,我感觉用纯JS来实现更简单些,所以,我用纯JS来实现了一次,很快成功了!

方法二
我们这次创建一个HTML页面:Popup.html
代码如下:

<!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> 
<style type="text/css"> 
#loginContent 
{}{ 
position: absolute; 
left: 40%; 
top: 30%; 
width: 230px; 
height: 180px; 
padding: 15px 15px 15px 15px; 
background-color: #fff; 
border: 2px solid #ccc; 
background-color: #fff; 
z-index: 100; 
display:none; 
} 
#hideContent 
{}{ 
display:none; 
position: absolute; 
top: 0; 
left: 0; 
height: 100%; 
width: 100%; 
z-index: 50; 
background-color: #dddddd; 
filter: alpha(opacity=60); /**//*IE*/ opacity:60; /**//*Firefox*/ 
} 
</style> 
<script type="text/javascript"> 
var hidecontent = document.getElementById("hideContent"); 
var logincontent = document.getElementById("loginContent"); 
function showModalPopup() { 
hideContent.style.display = "block"; 
loginContent.style.display = "block"; 
} 
function hideModalPopup() { 
hideContent.style.display = "none"; 
loginContent.style.display = "none"; 
} 
</script> 
<title></title> 
</head> 
<body> 
<a href="javascript:void(0);" onclick="showModalPopup();">登录</a> 
<div id="loginContent"> 
<a href="javascript:void(0);" onclick="hideModalPopup();">关闭</a> 
</div> 
<div id="hideContent"> 
</div> 
</body> 
</html>

就这样,我用两种方式实现了前面展示的那样的效果,其实我自己感觉,用纯JS写效果比用控件写更好,自己更明确整个效果代码的流程。
Javascript 相关文章推荐
javascript 时间比较实现代码
Oct 28 Javascript
用JavaScript修改CSS属性的代码
May 06 Javascript
用unescape反编码得出汉字示例
Apr 24 Javascript
SuperSlide2实现图片滚动特效
Jun 20 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
Dec 21 Javascript
javascript history对象详解
Feb 09 Javascript
ES6新数据结构Map功能与用法示例
Mar 31 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
Dec 03 Javascript
实例讲解vue源码架构
Jan 24 Javascript
Vue Echarts实现可视化世界地图代码实例
May 07 Javascript
在VUE中实现文件下载并判断状态的方法
Nov 08 Javascript
原生JS实现拖拽效果
Dec 04 Javascript
JavaScript Object的extend是一个常用的功能
Dec 02 #Javascript
JS类的封装及实现代码
Dec 02 #Javascript
Jquery选择器 $实现原理
Dec 02 #Javascript
js 表格隔行颜色
Dec 02 #Javascript
让FireFox支持innerText的实现代码
Dec 01 #Javascript
JavaScript 直接操作本地文件的实现代码
Dec 01 #Javascript
js 变量类型转换常用函数与代码[比较全]
Dec 01 #Javascript
You might like
PHP 字符串正则替换函数preg_replace使用说明
2011/07/15 PHP
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
php中如何防止表单的重复提交
2013/08/02 PHP
php判断页面是否是微信打开的示例(微信打开网页)
2014/04/25 PHP
PHP中函数gzuncompress无法使用的解决方法
2017/03/02 PHP
js+xml生成级联下拉框代码
2012/07/24 Javascript
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
2013/07/09 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
2015/03/18 Javascript
jQuery移动端日期(datedropper)和时间(timedropper)选择器附源码下载
2016/04/19 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
Angular Module声明和获取重载实例代码
2016/09/14 Javascript
JavaScript仿微博发布信息案例
2016/11/16 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
AngularJS入门教程一:路由用法初探
2017/05/27 Javascript
react-native DatePicker日期选择组件的实现代码
2017/09/12 Javascript
JavaScript多态与封装实例分析
2018/07/27 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
关于AngularJS中几种Providers的区别总结
2020/05/17 Javascript
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
利用aardio给python编写图形界面
2017/08/21 Python
Python星号*与**用法分析
2018/02/02 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
2019/06/24 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
机械专业毕业生推荐信范文
2013/11/25 职场文书
高一化学教学反思
2014/02/05 职场文书
读群众路线心得体会
2014/03/07 职场文书
党员服务承诺书
2014/05/28 职场文书
体育教师求职信
2014/06/30 职场文书
2014党的群众路线教育实践活动总结材料
2014/10/31 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers