两种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 相关文章推荐
setAttribute 与 class冲突解决
Feb 17 Javascript
jquery 1.3.2 IE8中的一点点的小问题解决方法
Jul 10 Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
Jul 31 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
Dec 22 Javascript
一个超简单的jQuery回调函数例子(分享)
Aug 08 Javascript
js中变量的连续赋值(实例讲解)
Jul 08 Javascript
JavaScript创建对象的七种方式全面总结
Aug 21 Javascript
Vue项目组件化工程开发实践方案
Jan 09 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
May 15 Javascript
微信小程序按钮去除边框线分享页面功能
Aug 27 Javascript
Element input树型下拉框的实现代码
Dec 21 Javascript
Vue性能优化的方法
Jul 30 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 ctype函数中文翻译和示例
2014/03/21 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
2017/02/07 PHP
php自定义截取中文字符串-utf8版
2017/02/27 PHP
jquery获取input表单值的代码
2010/04/19 Javascript
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
2016/01/27 Javascript
AngularJS入门教程之更多模板详解
2016/08/19 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
JavaScript引用类型Date常见用法实例分析
2018/08/08 Javascript
vue 查看dist文件里的结构(多种方式)
2020/01/17 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
Python字符串和文件操作常用函数分析
2015/04/08 Python
Python基于回溯法子集树模板解决数字组合问题实例
2017/09/02 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
2019/06/27 Python
Python实现socket非阻塞通讯功能示例
2019/11/06 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
2020/05/26 Python
基于python实现音乐播放器代码实例
2020/07/01 Python
pycharm激活方法到2099年(激活流程)
2020/09/22 Python
详解java调用python的几种用法(看这篇就够了)
2020/12/10 Python
分享一个页面平滑滚动小技巧(推荐)
2019/10/23 HTML / CSS
web页面录屏实现
2019/02/12 HTML / CSS
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
shell程序中如何注释
2012/02/17 面试题
项目开发计划书
2014/01/09 职场文书
学历公证委托书
2014/04/09 职场文书
团委竞选演讲稿
2014/04/24 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
计划生育汇报材料
2014/12/26 职场文书
数学教师个人总结
2015/02/06 职场文书
初中军训感言
2015/08/01 职场文书
如何用Navicat操作MySQL
2021/05/12 MySQL
Python pandas求方差和标准差的方法实例
2021/08/04 Python