两种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 相关文章推荐
Jquery替换已存在于element上的event的方法
Mar 09 Javascript
Jquery replace 字符替换实现代码
Dec 02 Javascript
JS 毫秒转时间示例代码
Sep 22 Javascript
JS中如何实现Laravel的route函数详解
Feb 12 Javascript
JS中去掉array中重复元素的方法
May 26 Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
Dec 08 Javascript
Javasript设计模式之链式调用详解
Apr 26 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
Jul 23 Javascript
关于自定义Egg.js的请求级别日志详解
Dec 12 Javascript
详解Vue.js v-for不支持IE9的解决方法
Dec 29 Javascript
layui使用表格渲染获取行数据的例子
Sep 13 Javascript
ES6中new Function()语法及应用实例分析
Feb 19 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
Laravel框架中实现使用阿里云ACE缓存服务
2015/02/10 PHP
汇总PHPmailer群发Gmail的常见问题
2016/02/24 PHP
详解thinkphp中的volist标签
2018/01/15 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
让textarea自动调整大小的js代码
2011/04/12 Javascript
js网页版计算器的简单实现
2013/07/02 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
基于nodejs+express(4.x+)实现文件上传功能
2015/11/23 NodeJs
JavaScript设计模式经典之命令模式
2016/02/24 Javascript
jQuery如何封装输入框插件
2016/08/19 Javascript
JavaScript获取ul中li个数的方法
2017/02/13 Javascript
angular学习之从零搭建一个angular4.0项目
2017/07/10 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
swiper插件自定义切换箭头按钮
2017/12/28 Javascript
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
vue中使用vue-pdf的方法详解
2020/09/05 Javascript
Python实现数据库并行读取和写入实例
2017/06/09 Python
python中实现延时回调普通函数示例代码
2017/09/08 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
python 多线程将大文件分开下载后在合并的实例
2018/11/09 Python
python算法题 链表反转详解
2019/07/02 Python
Anaconda详细安装步骤图文教程
2020/11/12 Python
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
机电专业毕业生推荐信
2013/11/10 职场文书
央视元宵晚会主持串词
2014/03/25 职场文书
开门红主持词
2014/04/02 职场文书
学校三节实施方案
2014/06/09 职场文书
女儿满月酒致辞
2015/07/29 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书
python实现高效的遗传算法
2021/04/07 Python
只用Python就可以制作的简单词云
2021/06/07 Python
vue3.0 数字翻牌组件的使用方法详解
2022/04/20 Vue.js