¡¡¡¡±¾ÎÄ Bilal Haidar ½«´øÁìÄúÈçºÎʹÓÃDIVÔªËØÀ´´´½¨µ¯³öµÄ´°Ìå,ÕâÖÖµ¯³ö¼´¿ÉÒÔ°üº¬¼òµ¥µÄHTMLÔªËØÒ²¿ÉÒÔ°üº¬ASP.NET·þÎñÆ÷¿Ø¼þ,¶øÇÒÔÚʵÏÖ¹ý³ÌÖÐûÓÐʹÓô«Í³µÄwindowº¯ÊýºÍshowModalDialog / showModelessDialogº¯Êý(´«Í³µÄÎÒÃÇʹÓà window.open,»òÕßshowModalDialog ÕâÑùµÄº¯ÊýÀ´ÖÆ×÷µ¯³ö´°¿Ú--ÌìÌì×¢ÊÍ)

¡¡¡¡×î½üÎÒÔÚÓÃASP.NET1.1¼¼ÊõÀ´¿ª·¢Ò»¸ö´°Ìå,¸Ã´°Ìå°üº¬ÓÉÈý¸ö¿Ø¼þ×é³ÉµÄÒ»¸öÃæ°å¼¯ºÏ,Õâ¸öÃæ°åÓÃÀ´ÏÔʾϵͳÐÅÏ¢.¿ÉÒÔ¼ÙÏëÕâЩ¿Ø¼þÊÇһЩ¼òµ¥µÄÏÂÀ­¿ò,µ±µÚÒ»¸öÏÂÀ­¿òѡȡºó,µÚ¶þ¸öÏÂÀ­¿òµÄÖµ½«ÏÔʾ±»µÚÒ»¸ö¹ýÂ˵Ľá¹û,ͬÑùµÚÈý¸öÏÂÀ­¿ò½«¸ù¾ÝµÚ¶þ¸öÏÂÀ­¿òµÄÑ¡Ôñ¶ø½øÐиıäÏÔʾ¡£

¡¡¡¡´°ÌåµÄÕâ¸ö¼¼Êõͨ³£±»ÓÃÀ´ÈÃÖն˿ͻ§ÄÇЩ²»ÖªµÀASP.NET¼¼ÊõµÄÈËÔ±»ñÈ¡¸üºÃµÄÓû§ÌåÑé¡£

¡¡¡¡µ±¾ö¶¨Ê¹ÓÃÕâЩ¿Ø¼þµÄÌæ´úƷʹÓÃʱ,ÄúÊÇ·ñÓùýdropdownlist»òÕßÊǾßÓе¯³ö´°Ì幦ÄܵÄTextbox¿Ø¼þ?

¡¡¡¡ºÃÁË,ÎÒÃÇÒѾ­ÓÐÁËÒ»¸öºÜºÃµÄ½â¾ö·½°¸:ʹÓÃTextBox¿Ø¼þ²¢¹Ò¹³OnClickʼþÀ´´¥·¢DIVµ¯³ö´°Ìå,°üÀ¨Ê¹ÓÃListbox¿Ø¼þÀ´Ñ¡ÔñÊý¾ÝµÄÖµ
Ò»¸ö²»Ê¹ÓÃÈκγ£¹æpopup´°Ìå»òÕß¹ýʱµÄDropdownlistÀ´Íê³ÉÕâ¸ö¹¦ÄÜ

¡¡¡¡ THE HTML WebForm

¡¡¡¡ÎÒÃÇÒѾ­½¨Á¢ÁËÒ»¸ö¼òµ¥µÄWebForm,Ëû°üº¬ÁËһЩTextBox,ÿһ¸öTextBoxÒѾ­¸½¼ÓÁËOnClickʼþ£¬ÓÃÒ»¶Îjavascript´úÂëÀ´µ¯³ö´°Ì壬´úÂëÈçÏ£º

£¼%@ Page language="c#"
Codebehind="ParentPage.aspx.cs" AutoEventWireup="false"
Inherits="PopupWithDiv.ParentPage" %£¾
£¼!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" £¾
£¼HTML£¾
£¼HEAD£¾
¡¡£¼title£¾Parent Page£¼/title£¾
¡¡£¼LINK href="main.css" type="text/css" rel="stylesheet"£¾
¡¡£¼script src="jsPopup.js" type="text/javascript"£¾£¼/script£¾
¡¡£¼script language="javascript"£¾
¡¡¡¡£¼!--
¡¡¡¡¡¡// Prevent users from typing any text
¡¡¡¡¡¡// into the Textbox
¡¡¡¡¡¡function ProtectBox(e)
¡¡¡¡¡¡{return false; }

¡¡¡¡//--£¾
¡¡£¼/script£¾
£¼/HEAD£¾
£¼body£¾
¡¡£¼form id="Form1" method="post" runat="server"£¾
¡¡£¼!-- Header Section --£¾
¡¡£¼div id="header"£¾
¡¡¡¡£¼p£¾Popup Window with DIV Layer£¼/p£¾
¡¡£¼/div£¾
¡¡£¼!-- Body Section --£¾
¡¡£¼div id="content"£¾
¡¡¡¡£¼table border="0" cellpadding="0" cellspacing="0"£¾
¡¡¡¡£¼tr valign="top"£¾
¡¡¡¡¡¡£¼td£¾£¼label for="txtCountry"£¾Country :£¼/label£¾£¼/td£¾
¡¡¡¡¡¡£¼td£¾£¼asp:TextBox
¡¡¡¡¡¡¡¡¡¡id="txtCountry" runat="server" OnKeyDown="return
¡¡¡¡¡¡¡¡¡¡ProtectBox(event);" OnClick="PopupArea(event, 'divCountry')"£¾£¼/asp:TextBox£¾£¼/td£¾
¡¡¡¡¡¡£¼td width="50"£¾£¼/td£¾
¡¡¡¡¡¡£¼td£¾£¼label for="txtCity"£¾City :£¼/label£¾£¼/td£¾
¡¡¡¡¡¡£¼td£¾£¼asp:TextBox
¡¡¡¡¡¡¡¡¡¡¡¡id="txtCity" runat="server" OnKeyDown="return
¡¡¡¡¡¡¡¡¡¡¡¡ProtectBox(event);" OnClick="PopupArea(event, 'divCity')"£¾£¼/asp:TextBox£¾£¼/td£¾
¡¡¡¡£¼/tr£¾
¡¡¡¡£¼/table£¾
¡¡£¼/div£¾
¡¡£¼%-- Country --%£¾
¡¡£¼div class="popupWindow" id="divCountry"£¾
¡¡¡¡£¼table cellSpacing="0" cellPadding="0" width="100%"¡¡bgColor="#2557ad" border="0"£¾
¡¡¡¡£¼tr£¾
¡¡¡¡¡¡£¼td align="right"£¾£¼span style="CURSOR: hand"
¡¡¡¡¡¡¡¡onclick="jsAreaClose('divCountry')"£¾£¼img alt="Hide Popup" src="close.gif"
¡¡¡¡¡¡¡¡border="0"£¾£¼/span£¾£¼/td£¾
¡¡¡¡£¼/tr£¾
¡¡¡¡£¼tr£¾
¡¡¡¡¡¡£¼td£¾
¡¡¡¡¡¡¡¡£¼asp:ListBox id="lstCountry" runat="server" AutoPostBack="True" width="100%"
rows="10"£¾£¼/asp:ListBox£¾£¼/td£¾
¡¡¡¡£¼/tr£¾
¡¡£¼/table£¾
¡¡£¼/div£¾
¡¡£¼%-- City --%£¾
¡¡¡¡£¼div class="popupWindow" id="divCity"£¾
¡¡¡¡£¼table
¡¡¡¡¡¡¡¡cellSpacing="0" cellPadding="0" width="100%"
¡¡¡¡¡¡¡¡bgColor="#2557ad" border="0"£¾
¡¡¡¡£¼tr£¾
¡¡¡¡¡¡£¼td align="right"£¾£¼span style="CURSOR: hand" onclick="jsAreaClose('divCity')"£¾£¼img alt="Hide Popup" src="close.gif" border="0"£¾£¼/span£¾£¼/td£¾
¡¡¡¡£¼/tr£¾
¡¡¡¡£¼tr£¾
¡¡¡¡¡¡£¼td£¾
¡¡¡¡¡¡¡¡£¼asp:ListBox id="lsCity" runat="server" AutoPostBack="True" width="100%" rows="10"£¾£¼/asp:ListBox£¾¡¡¡¡¡¡£¼/td£¾
¡¡¡¡£¼/tr£¾
¡¡¡¡£¼/table£¾
¡¡£¼/div£¾
£¼/form£¾
£¼/body£¾
£¼/HTML£¾

¡¡¡¡´úÂëÖУ¬ÓôÖÌå±ê³öµÄ²¿·ÖÊÇPopup´°ÌåµÄÖ÷ÒªÊôÐÔ£¬ÔÚÊó±êµ¥»÷ʱ£¬½«µ÷ÓÃÒ»¶ËJavaScript£ºPopupArea¡£

¡¡¡¡ÕýÈçÄúËù¿´µ½µÄ£¬ÎÒÃÇÔÚÒ³Ãæµ×²¿Ìí¼ÓÁËÁ½¸öDIVÔªËØ£¬Ò»¸öÓÃÓÚ¹ú¼Ò£¬Ò»¸öÓÃÓÚ³ÇÊУ¬Ã¿Ò»¸ö¶¼°üº¬ListBox¿Ø¼þ£¬Óû§¿ÉÒÔʹÓÃListboxÑ¡ÔñÉÏÃæµÄÄÚÈÝ¡£

¡¡¡¡ÏÂͼ1ÏÖʵÁËÒ³Ãæä¯ÀÀµÄЧ¹û£¬Ëû»¹ÑÝʾÁËÈçºÎµ¯³öDIV´°Ìå

¡¡¡¡µ±µ¥»÷TextboxÄÚ²¿£¬windows½«µ¯³ö´°Ìå¶ø²»»áÒýÆðÒ³ÃæÊý¾Ý»Ø·¢ÏÖÔڸõ½Ìî³äÆäÖÐÊý¾ÝµÄʱºòÁË

¡¡¡¡Page COde-behind

¡¡¡¡ÔÚÒ³Ãæºǫ́£¬ÎÒÃÇ×¼±¸´ÓÒ»¸öXMLÎĵµ¼ÓÔØlist¡°¹ú¼Ò¡±ËùÐèÒªµÄÊý¾Ý£¬Í¬Ê±ÏÔʾ¹ú¼ÒµÄÃû³Æ£¬ÏÂÃæÁгöÁËÕâ¸ö¹¦ÄܵĴúÂ룺

¡¡¡¡Listing 2: Populate Country ListBox

// Load data into Country List box
if (!Page.IsPostBack)
{
¡¡// Load data from XML into a DataSet
¡¡DataSet ds = new DataSet();
¡¡ds.ReadXml(Server.MapPath("countries.xml"));

¡¡this.lstCountry.DataSource = ds.Tables[0].DefaultView;
¡¡this.lstCountry.DataTextField = "name";
¡¡this.lstCountry.DataBind();
}


¡¡¡¡ÔÚÕâÒ»²½ÖèÖУ¬µ±Ò³ÃæÔËÐÐʱ£¬Äú¿ÉÒÔÑ¡Ôñ¹ú¼Ò£¬ÈçÏÂͼ


¡¡¡¡ÏÖÔÚ£¬µ±Óû§Ñ¡Ôñ¹ú¼Òʱ£¬½«´¥·¢listboxµÄÑ¡Ôñʼþ£¬²¢Í¨¹ý¸Ãʼþ¼ÓÔØ¡°³ÇÊС±Êý¾Ý£¬¸ÃÊý¾ÝͬÑù´ÓXMLÎĵµ¼ÓÔØ

¡¡¡¡ÏÂÃæÁгöÁËʼþ´úÂë

¡¡¡¡Listing 3

private void lstCountry_SelectedIndexChanged(object sender, EventArgs e)
{
¡¡// Set the value in the textbox
¡¡this.txtCountry.Text = this.lstCountry.SelectedValue;

¡¡// Load and Filter the lstCity
¡¡DataSet ds = new DataSet();
¡¡ds.ReadXml(Server.MapPath("cities.xml"));

¡¡DataView dv = ds.Tables[0].DefaultView;
¡¡dv.RowFilter = "country = '" + this.lstCountry.SelectedValue + "'";

¡¡// Bind lstCity
¡¡this.lstCity.DataSource = dv;
¡¡this.lstCity.DataTextField = "name";
¡¡this.lstCity.DataBind();
}

¡¡¡¡Óû§ÏÖÔÚ¿ÉÒÔÑ¡ÔñÓë¹ú¼ÒÏàÆ¥ÅäµÄ³ÇÊУ¬ÈçÏÂ