把下面两个文件分别保存为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>

解决方案 »

  1.   

    在parent.aspx的HTML中加入:<SCRIPT language="JavaScript" event="onclick" for="Button1">
    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
      

  2.   

    你需要把文本框的ID做为控件的一个公共属性,然后把这个文本框的ClientID传到Javascript里边,即需要在服务器端将Javascript传到客户端。BTW:现在才回三个多月前的帖子,也不知说什么好了!
      

  3.   

    webdiyer(陕北吴旗娃) 可是从2 red stars to 3 red stars.