把下面两个文件分别保存为parent.aspx和calendar.aspx后运行parent.aspx看看,点击“选择日期”后将打开日历窗口,在日历上点一个日期,日历窗口关闭,同时选中的日期将显示在父页面上的TextBox中:parent.aspx
==============================
<script runat="server" Language="C#">
void Page_Load(object src,EventArgs e){}
</script>
<HTML>
<HEAD>
<TITLE> Webdiyer 制造:)(www.webdiyer.com) </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Webdiyer">
</HEAD><BODY>
<form runat="server">
<asp:TextBox runat="server" id="box"/><button onclick="window.open('calendar.aspx','_blank','width=330,height=250')">选择日期</button>
</form>
</BODY>
</HTML>calendar.aspx
=============================
<script runat="server" Language="C#">
void TransferDate(object src,EventArgs e){
System.Text.StringBuilder sb=new System.Text.StringBuilder(500);
sb.Append("<script Language=\"Javascript\">");
sb.Append("if(window.opener!=null)window.opener.document.all.box.value=\"");
sb.Append(calendar1.SelectedDate.ToShortDateString());
sb.Append("\";window.close();");
sb.Append("<");
sb.Append("/");
sb.Append("script>");
if(!Page.IsStartupScriptRegistered("myscript"))
Page.RegisterStartupScript("myscript",sb.ToString());
}
</script>
<HTML>
<HEAD>
<TITLE> Webdiyer 制造:) (www.webdiyer.com) </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Webdiyer">
</HEAD><BODY>
<form runat="server">
<asp:Calendar runat="server" id="calendar1" onselectionChanged="TransferDate"/>
</form>
</BODY>
</HTML>
==============================
<script runat="server" Language="C#">
void Page_Load(object src,EventArgs e){}
</script>
<HTML>
<HEAD>
<TITLE> Webdiyer 制造:)(www.webdiyer.com) </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Webdiyer">
</HEAD><BODY>
<form runat="server">
<asp:TextBox runat="server" id="box"/><button onclick="window.open('calendar.aspx','_blank','width=330,height=250')">选择日期</button>
</form>
</BODY>
</HTML>calendar.aspx
=============================
<script runat="server" Language="C#">
void TransferDate(object src,EventArgs e){
System.Text.StringBuilder sb=new System.Text.StringBuilder(500);
sb.Append("<script Language=\"Javascript\">");
sb.Append("if(window.opener!=null)window.opener.document.all.box.value=\"");
sb.Append(calendar1.SelectedDate.ToShortDateString());
sb.Append("\";window.close();");
sb.Append("<");
sb.Append("/");
sb.Append("script>");
if(!Page.IsStartupScriptRegistered("myscript"))
Page.RegisterStartupScript("myscript",sb.ToString());
}
</script>
<HTML>
<HEAD>
<TITLE> Webdiyer 制造:) (www.webdiyer.com) </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Webdiyer">
</HEAD><BODY>
<form runat="server">
<asp:Calendar runat="server" id="calendar1" onselectionChanged="TransferDate"/>
</form>
</BODY>
</HTML>
window.open("calendar.aspx","_new","top=570,left=300,width=360,height=300,scrollbars=no,resizable=no");
</SCRIPT>===============================================================在calendar.aspx中加入:Private Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Calendar1.SelectionChanged
Dim strDate As String = Calendar1.SelectedDate.ToShortDateString() Dim scriptString As String = "<script language=JavaScript> "
scriptString += "if(window.opener!=null)"
scriptString += "{"
scriptString += "window.opener.document.all.TextBox1.value = "
scriptString += """"
scriptString += strDate
scriptString += """"
scriptString += "}"
scriptString += "</SCRIPT>" If (Not Me.IsStartupScriptRegistered("StartUp")) Then
Me.RegisterStartupScript("StartUp", scriptString)
End If
End Sub
====================================================以上代码实现功能:点击parent.aspx中的button1,弹出calendar.aspx,选择Calendar1中的日期,把该日期传送到parent.aspx中的TextBox1