兩種WEB下的模態(tài)對話框 (asp.net或js的分別實現(xiàn))
更新時間:2009年12月02日 01:02:09 作者:
在如今互聯(lián)網(wǎng)網(wǎng)站上,AJAX效果風(fēng)靡一時,應(yīng)該說AJAX技術(shù)在未來幾年不會動搖,在AJAX效果中,模態(tài)對話框是比較常見的效果,也是非常適用的。
在這里我給大家介紹或者說是展示一下我自己的做的兩種模態(tài)對話框

方法一
本方法是采用ASP.NET AJAX的擴(kuò)展控件:ASP.NET AJAX Control Tool Kit中的ModalPopupExtender控件實現(xiàn)的:
第一步,我們先創(chuàng)建一個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屬性必須寫在標(biāo)簽里面。--%>
<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 = "";
}
}
就這樣,通過很簡單的擴(kuò)展控件就實現(xiàn)了模態(tài)對話框的效果,但是,我后來想了想,我感覺用純JS來實現(xiàn)更簡單些,所以,我用純JS來實現(xiàn)了一次,很快成功了!
方法二
我們這次創(chuàng)建一個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();">關(guān)閉</a>
</div>
<div id="hideContent">
</div>
</body>
</html>
就這樣,我用兩種方式實現(xiàn)了前面展示的那樣的效果,其實我自己感覺,用純JS寫效果比用控件寫更好,自己更明確整個效果代碼的流程。
方法一
本方法是采用ASP.NET AJAX的擴(kuò)展控件:ASP.NET AJAX Control Tool Kit中的ModalPopupExtender控件實現(xiàn)的:
第一步,我們先創(chuàng)建一個ASP.NET頁面:ModalPopup.aspx
頁面代碼:
復(fù)制代碼 代碼如下:
<%@ 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屬性必須寫在標(biāo)簽里面。--%>
<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 = "";
}
}
就這樣,通過很簡單的擴(kuò)展控件就實現(xiàn)了模態(tài)對話框的效果,但是,我后來想了想,我感覺用純JS來實現(xiàn)更簡單些,所以,我用純JS來實現(xiàn)了一次,很快成功了!
方法二
我們這次創(chuàng)建一個HTML頁面:Popup.html
代碼如下:
復(fù)制代碼 代碼如下:
<!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();">關(guān)閉</a>
</div>
<div id="hideContent">
</div>
</body>
</html>
就這樣,我用兩種方式實現(xiàn)了前面展示的那樣的效果,其實我自己感覺,用純JS寫效果比用控件寫更好,自己更明確整個效果代碼的流程。
您可能感興趣的文章:
- JS 模態(tài)對話框和非模態(tài)對話框操作技巧匯總
- 利用javascript打開模態(tài)對話框(示例代碼)
- javascript showModalDialog模態(tài)對話框使用說明
- JavaScript 實現(xiàn)模態(tài)對話框 源代碼大全
- 詳解AngularJS 模態(tài)對話框
- JS對話框_JS模態(tài)對話框showModalDialog用法總結(jié)
- js模態(tài)對話框使用方法詳解
- js實現(xiàn)div模擬模態(tài)對話框展現(xiàn)URL內(nèi)容
- ModelDialog JavaScript模態(tài)對話框類代碼
- JavaScript實現(xiàn)模態(tài)對話框?qū)嵗?/a>
- js實現(xiàn)響應(yīng)按鈕點(diǎn)擊彈出可拖拽的非模態(tài)對話框完整實例【測試可用】
相關(guān)文章
獲取焦點(diǎn)時,利用js定時器設(shè)定時間執(zhí)行動作
網(wǎng)上有很多類似的知識,并不是有什么難度的技巧,僅僅是開發(fā)過程中的一點(diǎn)點(diǎn)積累而已。2010-04-04
IE8提示Invalid procedure call or argument 異常的解決方法
某臺機(jī)器上,訪問公司的好幾個產(chǎn)品網(wǎng)站,都拋出很多 Invalid procedure call or argument ,跟進(jìn)了下,情況最后簡化為2012-09-09
詳解小程序開發(fā)經(jīng)驗:多頁面數(shù)據(jù)同步
這篇文章主要介紹了小程序開發(fā)經(jīng)驗:多頁面數(shù)據(jù)同步,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
JavaScript Math對象和調(diào)試程序的方法分析
這篇文章主要介紹了JavaScript Math對象和調(diào)試程序的方法,結(jié)合實例形式分析了javascript中Math對象生成隨機(jī)數(shù)以及使用alert()、console.log()函數(shù)進(jìn)行錯誤調(diào)試相關(guān)操作技巧,需要的朋友可以參考下2019-05-05
JavaScript實現(xiàn)點(diǎn)擊單元格改變背景色的方法
這篇文章主要介紹了JavaScript實現(xiàn)點(diǎn)擊單元格改變背景色的方法,涉及JavaScript響應(yīng)鼠標(biāo)事件動態(tài)操作頁面元素屬性的相關(guān)技巧,需要的朋友可以參考下2016-02-02
JavaScript DOM節(jié)點(diǎn)操作實例小結(jié)(新建,刪除HTML元素)
這篇文章主要介紹了JavaScript DOM節(jié)點(diǎn)操作,結(jié)合實例形式總結(jié)分析了JS操作DOM實現(xiàn)新建與刪除HTML元素的具體步驟與相關(guān)技巧,需要的朋友可以參考下2017-01-01

