我做了ASPX页面里放了一个Textbox控件,然后放了一个用于显示日期的calendar控件,我想要当这个Textbox控件获得焦点时,这个calendar是可见的;失去焦点时,calendar控件时隐藏的。
有人给了这样一段代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        this.Calendar1.Attributes.Add("style", "display:none;border-width:1px;border-style:solid;border-collapse:collapse;z-index: 100; left: 0px;");
      TextBox1.Attributes.Add("onfocus", "javascript:document.getElementById('Calendar1').style.display=''");
        TextBox1.Attributes.Add("onblur", "javascript:document.getElementById('Calendar1').style.display='none'");
    }
    protected void Calendar1_SelectionChanged(object sender, EventArgs e)
    {
        
        TextBox1.Text = Calendar1.SelectedDate.ToShortDateString();    }}
但是我用上去后,显示和隐藏倒是实现了,但是点击时,那个日期不能显示到Textbox里面啊!!
求高手解答啊。
到底Textbox的焦点事件怎么去弄啊!!

解决方案 »

  1.   

    一般用这个:http://www.my97.net/dp/index.asp  。 自己处理的话问题很多的,没必要自己处理。
      

  2.   

    onblur="[xxx]"//失去焦点
    onfocus="[yyy]"//获得焦点
      

  3.   

    JS我知道能实现。。但是我就想弄懂这个calendar控件怎么用啊!!
    三楼的能不能说具体点啊。。Textbox中貌似没有onfocus和onblur事件啊。。只有个返回void类型的Focus()函数
      

  4.   

    一段时间后自动隐藏不好吧有时你在calendar上操作的时间不确定啊
      

  5.   

    你写上
    onblur="[xxx]"//失去焦点
    onfocus="[yyy]"//获得焦点
    去,你试过了吗?用INPUT啊!然后加个RUNAT=“SERVER”啊!一样的可以用啊!
      

  6.   

    在textbox获得焦点的时候,让日期控件显示出来,同时设定时间,到时间自动隐藏掉。
    js,setTimeOut()方法可以设定时间。
      

  7.   

    我上面贴那个代码实现了calendar的隐藏和显示了的。。就是点击中间的日期后,在Textbox中没有把日期显示出来啊。。
      

  8.   

    了解:
    <%= Html.TextBox("xxx", "yyy", new { size = "10", MaxLength = "10", onblur = "formatDate('zzzz');" })%>
    <%= Html.Calender("ReceiveDateFrom")%>
      

  9.   

    <%= Html.TextBox("xxx", "yyy", [zzzzz])%>
    <%= Html.Calender("xxx")%>
      

  10.   

    弱弱得问一句:在Calendar1_SelectionChanged事件里写隐藏不可以嘛?   选择了日期后让TextBox1隐藏     
      

  11.   

    不能Calendar1_SelectionChanged是你选择日期时才触发的事件
    最开始Calendar1都是隐藏的。。怎么选择嘛
      

  12.   

    把TextBox1.Attributes.Add("onblur", "javascript:document.getElementById('Calendar1').style.display='none'");
    这个先注销掉。
    在这个里面加一句protected void Calendar1_SelectionChanged(object sender, EventArgs e)
       {
         
      TextBox1.Text = Calendar1.SelectedDate.ToShortDateString();
    Calendar1.visibe=true;
       }
    这样就OK了
      

  13.   

    Calendar1.visible=true;就好,把失去焦点的那个代码注销掉