欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ASP.NET中使用IFRAME建立類Modal窗口

 更新時(shí)間:2006年09月28日 00:00:00   作者:  

    我們經(jīng)常要在程序的人機(jī)交互中用到模態(tài)窗口,但在B/S開發(fā)中,這一切變得不容易了,雖然也可以用window.showModalDialog函數(shù)實(shí)現(xiàn)(見http://dotnet.aspx.cc/ShowDetail.aspx?id=49ML4AO8-5PB3-4KNY-NJZD-LJOIOXV4M1X4),但多數(shù)用起來(lái)麻煩,還要為了回傳值用Frameset建立2個(gè)無(wú)用的窗口。不爽!

    我發(fā)現(xiàn)可以嘗試在初始頁(yè)面中嵌入一個(gè)IFRAME,然后用IFRAME來(lái)顯示一個(gè)頁(yè)面,并將IFRAME設(shè)定為按絕對(duì)位置擺放,Z-Index設(shè)置為最高的9999,這樣就可以將這個(gè)頁(yè)面覆蓋在初始界面上,當(dāng)需要顯示模態(tài)窗口時(shí),就顯示這個(gè)IFRAME,可以將IFRAME的尺寸擴(kuò)大到能覆蓋住初始窗口,也可以蓋住關(guān)鍵項(xiàng),目的就是不讓后面的窗口有什么變化的可能。在IFRAME顯示的窗口需要關(guān)閉時(shí)只要對(duì)它的parent的IFRAME隱藏就可以了。實(shí)際試驗(yàn)時(shí)發(fā)現(xiàn)IFRAME的diaplay不能在子窗口被改變,所以,我們還需要將IFRAME放到一個(gè)DIV中,控制DIV的顯示就可以控制窗口的出現(xiàn)或隱藏。但為什么不直接用DIV來(lái)顯示窗口呢,原因有兩個(gè):1.DIV不能遮擋它后面的Dropdownlist控件,而IFRAME能。2.不容易將窗口內(nèi)的內(nèi)容放置到一個(gè)單獨(dú)的網(wǎng)頁(yè)中,復(fù)用性差。

以下是代碼,顯示隱藏使用了客戶端和服務(wù)端代碼兩種寫法:

WebForm1.aspx

 <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WSGUI1.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
 <HEAD>
  <title>WebForm1</title>
  <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
  <meta name="CODE_LANGUAGE" Content="C#">
  <meta name="vs_defaultClientScript" content="JavaScript">
  <meta name="vs_targetSchema" content="  <script language="javascript">
   function ShowLayer()
   {
    document.all.MyFormLayer.style.display='';
    return false;
   }
   function SetURL(url)
   {
    document.all.IFRAME1.src=url;
   }
  </script>
 </HEAD>
 <body MS_POSITIONING="GridLayout">
  <form id="Form1" method="post" runat="server">
   <FONT face="宋體">
    <asp:DropDownList id="DropDownList1" style="Z-INDEX: 101; LEFT: 40px; POSITION: absolute; TOP: 208px"
     runat="server" Width="184px">
     <asp:ListItem Value="TEST1">q</asp:ListItem>
     <asp:ListItem Value="TEST2">w</asp:ListItem>
     <asp:ListItem Value="TEST3">e</asp:ListItem>
     <asp:ListItem Value="TEST4">r</asp:ListItem>
    </asp:DropDownList></FONT> <input type="button" name="MyButton" value="TEST" id="MyButton" onclick="ShowLayer();SetURL('WebForm2.aspx')" style="Z-INDEX: 102; LEFT: 360px; POSITION: absolute; TOP: 336px">
   <div id="MyFormLayer" style="DISPLAY: none;Z-INDEX: 103;LEFT: 16px;WIDTH: 408px;POSITION: absolute;TOP: 24px;HEIGHT: 304px">
    <iframe scrolling="no" frameborder="0" width="100%" height="100%" id="IFRAME1" runat="server">
    </iframe>
   </div>
   <asp:Button id="Button2" style="Z-INDEX: 104; LEFT: 256px; POSITION: absolute; TOP: 336px" runat="server"
    Text="ASPXTest"></asp:Button>
  </form>
 </body>
</HTML>

 

WebForm1.aspx.cs

....

 public class WebForm1 : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.DropDownList DropDownList1;
  protected System.Web.UI.HtmlControls.HtmlGenericControl IFRAME1;
  protected System.Web.UI.WebControls.Button Button2;

  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此處放置用戶代碼以初始化頁(yè)面
   if(!IsPostBack)
   {

   }
  }
  public static void CreateScript(System.Web.UI.Page mypage,string strScript,string ID)
  {
   string strscript="<script language='javascript'>";
   strscript += strScript;
   strscript += "</script>";
   if(!mypage.IsStartupScriptRegistered(ID))
    mypage.RegisterStartupScript(ID, strscript);
  }
  private void Button2_Click(object sender, System.EventArgs e)
  {
   IFRAME1.Attributes.Add("src","WebForm2.aspx?NAME='中國(guó)'");
   CreateScript(Page,"ShowLayer();","SHOW");
  }
 }

 


WebForm2.aspx

 <%@ Page language="c#" Codebehind="WebForm2.aspx.cs" AutoEventWireup="false" Inherits="WSGUI1.WebForm2" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
 <HEAD>
  <title>WebForm2</title>
  <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
  <meta name="CODE_LANGUAGE" Content="C#">
  <meta name="vs_defaultClientScript" content="JavaScript">
  <meta name="vs_targetSchema" content="
  <script language="javascript">
  function hide()
  {
   parent.MyFormLayer.style.display = "none";
  }
  </script>
 </HEAD>
 <body MS_POSITIONING="GridLayout">
  <form id="Form2" method="post" runat="server">
   <table border="0" width="100%" cellspacing="0" cellpadding="0" bgcolor="#6887bb" height="100%"
    id="table1" style="BORDER-TOP-STYLE: outset; BORDER-RIGHT-STYLE: outset; BORDER-LEFT-STYLE: outset; BORDER-BOTTOM-STYLE: outset">
    <tr>
     <td>
     </td>
     <td>
     </td>
     <td>
     </td>
    </tr>
    <tr>
     <td>
     </td>
     <td>
      <p align="center"><font color="#ffffff">模仿模態(tài)窗口效果</font></p>
      <p align="center"><input type="button" onclick="hide()" style="WIDTH: 80px" value="點(diǎn)擊關(guān)閉">
       <asp:Button id="Button1" runat="server" Text="ASPXTest"></asp:Button></p>
     </td>
     <td>
     </td>
    </tr>
    <tr>
     <td>
     </td>
     <td>
     </td>
     <td>
     </td>
    </tr>
   </table>
  </form>
 </body>
</HTML>
 

 

WebFom2.aspx.cs

 namespace WSGUI1
{
 /// <summary>
 /// WebForm2 的摘要說(shuō)明。
 /// </summary>
 public class WebForm2 : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.Button Button1;

  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此處放置用戶代碼以初始化頁(yè)面
   if(!IsPostBack)
   {
    Button1.Attributes.Add("onclick","hide()");
   }
  }

 }

相關(guān)文章

  • aspx后臺(tái)傳遞Json到前臺(tái)的兩種接收方法推薦

    aspx后臺(tái)傳遞Json到前臺(tái)的兩種接收方法推薦

    下面小編就為大家?guī)?lái)一篇aspx后臺(tái)傳遞Json到前臺(tái)的兩種接收方法推薦。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • .NET8.0發(fā)布到IIS的實(shí)現(xiàn)步驟

    .NET8.0發(fā)布到IIS的實(shí)現(xiàn)步驟

    很多學(xué)習(xí).Net的朋友初次接觸并不知道一個(gè).Net應(yīng)用怎么發(fā)布到IIS服務(wù)器中去,本文主要介紹了.NET8.0發(fā)布到IIS的實(shí)現(xiàn)步驟,感興趣的可以了解一下
    2024-05-05
  • VS2005打開VS2008項(xiàng)目的2種方法(vs2005怎么打開2008)

    VS2005打開VS2008項(xiàng)目的2種方法(vs2005怎么打開2008)

    vs2008支持.net3.5,而vs2005支持.net2.0,所以使用vs2005打開vs2008的項(xiàng)目,要確定你的項(xiàng)目是.net2.0的,下面介紹二種VS2005打開VS2008項(xiàng)目的方法
    2014-01-01
  • ASP.NET Core使用GraphQL第二章之中間件

    ASP.NET Core使用GraphQL第二章之中間件

    這篇文章主要給大家介紹了關(guān)于ASP.NET Core使用GraphQL第二章之中間件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • pdf轉(zhuǎn)換成jpg示例分享

    pdf轉(zhuǎn)換成jpg示例分享

    由于項(xiàng)目需要在.net下將pdf轉(zhuǎn)換為普通圖像格式,找到了一個(gè)好方法,現(xiàn)在分享給大家
    2014-03-03
  • aspnet_isapi.dll設(shè)置圖文方法.net程序?qū)崿F(xiàn)偽靜態(tài)

    aspnet_isapi.dll設(shè)置圖文方法.net程序?qū)崿F(xiàn)偽靜態(tài)

    aspnet_isapi.dll設(shè)置圖文介紹.net的程序?qū)崿F(xiàn)偽靜態(tài),需要的朋友可以參考下。
    2009-11-11
  • ASP.NET Eval進(jìn)行數(shù)據(jù)綁定的方法

    ASP.NET Eval進(jìn)行數(shù)據(jù)綁定的方法

    ASP.NET Eval在數(shù)據(jù)綁定方面的應(yīng)用是眾所周知的,不過(guò)技術(shù)在發(fā)展,當(dāng)ASP.NET Eval 1.1變成ASP.NET Eval 2.0的時(shí)候,在操作的時(shí)候會(huì)有什么變化呢?
    2013-04-04
  • asp.net中Request.QueryString與Request.Param的區(qū)別分析

    asp.net中Request.QueryString與Request.Param的區(qū)別分析

    看起來(lái)Request.Params更好一些,但是還是不明白既然Param包括了所有,為什么還要有QueryString呢
    2011-10-10
  • ASP.NET遞歸法求階乘解決思路

    ASP.NET遞歸法求階乘解決思路

    遞歸就是在過(guò)程或函數(shù)里調(diào)用自身,在使用遞歸策略時(shí),必須有一個(gè)明確的遞歸結(jié)束條件,稱為遞歸出口遞歸算法解題通常顯得很簡(jiǎn)潔,但遞歸算法解題的運(yùn)行效率較低。所以一般不提倡用遞歸算法設(shè)計(jì)程序
    2012-12-12
  • ASP.NET MVC @Helper輔助方法和@functons自定義函數(shù)的使用方法

    ASP.NET MVC @Helper輔助方法和@functons自定義函數(shù)的使用方法

    本文主要介紹ASP.NET MVC中使用@Helper和@functons自定義一些代碼片段,方便視圖調(diào)用,從而達(dá)到減少重復(fù)代碼,快速開發(fā)的目的,希望對(duì)大家有所幫助。
    2016-04-04

最新評(píng)論