calendar控件自动隐藏?? 怎么实现: 点到textbox跳出calendar控件,选定一个日期到textbox里 然后 calendar控件自动隐藏起来. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 后台代码如下:protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Calendar1.Visible = false; //初始日历对象不可看 } } protected void TextBox1_TextChanged(object sender, EventArgs e) { Calendar1.Visible = true; //文字改变的时候日历出现 } protected void Calendar1_SelectionChanged(object sender, EventArgs e) { TextBox1.Text = Calendar1.SelectedDate.ToShortDateString(); //设置TextBox属性为日历日期 Calendar1.Visible = false; //日历不可见 }刚才运行了一下,输入文字的时候要按回车才能显示日历请大家帮忙解决一下,在线等,呵呵 <form id="form1" runat="server"> <cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> </cc1:ToolkitScriptManager> <asp:contentplaceholder id="con" runat="server"> </asp:contentplaceholder> <div> <br /> Input Date: <asp:TextBox ID="MyTextBox" runat="server" Width="538px"></asp:TextBox> <br /> <asp:Panel ID="Panel1" runat="server" CssClass="popupControl"> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="Calendar1_SelectionChanged" BackColor="#FFFFCC" BorderColor="#FFCC66" BorderWidth="1px" DayNameFormat="Shortest" Font-Names="Verdana" Font-Size="8pt" ForeColor="#663399" Height="200px" ShowGridLines="True" Width="220px"> <SelectedDayStyle BackColor="#CCCCFF" Font-Bold="True" /> <TodayDayStyle BackColor="#FFCC66" ForeColor="White" /> <SelectorStyle BackColor="#FFCC66" /> <OtherMonthDayStyle ForeColor="#CC9966" /> <NextPrevStyle Font-Size="9pt" ForeColor="#FFFFCC" /> <DayHeaderStyle BackColor="#FFCC66" Font-Bold="True" Height="1px" /> <TitleStyle BackColor="#990000" Font-Bold="True" Font-Size="9pt" ForeColor="#FFFFCC" /> </asp:Calendar> </ContentTemplate> </asp:UpdatePanel> </asp:Panel> <br /> <cc1:PopupControlExtender ID="PopupControlExtender1" runat="server" CommitProperty="value" PopupControlID="Panel1" Position="Bottom" TargetControlID="MyTextBox"> </cc1:PopupControlExtender> </div> </form> protected void Calendar1_SelectionChanged(object sender, EventArgs e) { this.PopupControlExtender1.Commit(this.Calendar1.SelectedDate.ToString()); } 我在TextBox中增加了AutoPostBack="true" 可还是要按回车才能显现日历,请问应该怎么办才能在输入文字或空格什么的时候就出现日历呢 AutoPostBack="true" 的话会在焦点移出TextBox递交表单.你可以自己写javascript来递交表单. 我的代码用了asp.net ajaxhttp://www.asp.net/ajax/ this.Page.ClientScript.RegisterClientSciptBlock(this.GetType(),"abc", yourTextBox.ClientID+".onkeydown='if(this.value=='')"+ this.Page.GetPostBackEventReference(yourTextBox), true);这会让文本控件在内容为空白并开始输入内容时回发触发它的click后台事件。可惜我早已不再开发asp.net程序了。看到csdn的asp.net栏目显示asp.net知识如此比较可惜。你应该去自己研究GetPostBackEventReference背后的理论知识,我不讲解了。 嗯,由于输出的文字本来就在单引号里,需要对单引号进行转义,也就是写this.Page.ClientScript.RegisterClientSciptBlock(this.GetType(),"abc", yourTextBox.ClientID+".onkeydown='if(this.value=='')"+ this.Page.GetPostBackEventReference(yourTextBox).Replace("'","//'"), true); 可不可以用MouseClick事件private void textBox1_MouseClick(object sender, MouseEventArgs e) { this.monthCalendar1.Visible = true; }而不用TextChange事件。 calendar控件在开发过程中一般很少用到,用得最多的是 写个javascript 比喻梅花雪之类 急...新手问,关于.NETC#注册页面 在线等 高手出现把! 急急急急急急急急急! 怎样用post/get传递和获取参数 sql的top问题! 连接数据库报错,请大家帮我看看? 为什么我的框架页面不起作用。 水晶报表10高级开发版无法登录 在Web方式下,怎么生成Excel那种的多维透视表? 了解magento的请进 <asp:button>语句导致程序不能正常运行? 关于路径的问题,ASP.NET 里面 ~/ 和 / 的区别 Session丢失
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Calendar1.Visible = false; //初始日历对象不可看
}
}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{ Calendar1.Visible = true; //文字改变的时候日历出现
} protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
TextBox1.Text = Calendar1.SelectedDate.ToShortDateString(); //设置TextBox属性为日历日期
Calendar1.Visible = false; //日历不可见
}
刚才运行了一下,输入文字的时候要按回车才能显示日历
请大家帮忙解决一下,在线等,呵呵
<cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</cc1:ToolkitScriptManager>
<asp:contentplaceholder id="con" runat="server">
</asp:contentplaceholder>
<div>
<br />
Input Date:
<asp:TextBox ID="MyTextBox" runat="server" Width="538px"></asp:TextBox>
<br />
<asp:Panel ID="Panel1" runat="server" CssClass="popupControl">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="Calendar1_SelectionChanged" BackColor="#FFFFCC" BorderColor="#FFCC66" BorderWidth="1px" DayNameFormat="Shortest" Font-Names="Verdana" Font-Size="8pt" ForeColor="#663399" Height="200px" ShowGridLines="True" Width="220px">
<SelectedDayStyle BackColor="#CCCCFF" Font-Bold="True" />
<TodayDayStyle BackColor="#FFCC66" ForeColor="White" />
<SelectorStyle BackColor="#FFCC66" />
<OtherMonthDayStyle ForeColor="#CC9966" />
<NextPrevStyle Font-Size="9pt" ForeColor="#FFFFCC" />
<DayHeaderStyle BackColor="#FFCC66" Font-Bold="True" Height="1px" />
<TitleStyle BackColor="#990000" Font-Bold="True" Font-Size="9pt" ForeColor="#FFFFCC" />
</asp:Calendar>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
<br />
<cc1:PopupControlExtender ID="PopupControlExtender1" runat="server" CommitProperty="value"
PopupControlID="Panel1"
Position="Bottom" TargetControlID="MyTextBox">
</cc1:PopupControlExtender>
</div>
</form>
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
this.PopupControlExtender1.Commit(this.Calendar1.SelectedDate.ToString());
}
请问应该怎么办才能在输入文字或空格什么的时候就出现日历呢
http://www.asp.net/ajax/
yourTextBox.ClientID+".onkeydown='if(this.value=='')"+
this.Page.GetPostBackEventReference(yourTextBox),
true);这会让文本控件在内容为空白并开始输入内容时回发触发它的click后台事件。可惜我早已不再开发asp.net程序了。看到csdn的asp.net栏目显示asp.net知识如此比较可惜。你应该去自己研究GetPostBackEventReference背后的理论知识,我不讲解了。
yourTextBox.ClientID+".onkeydown='if(this.value=='')"+
this.Page.GetPostBackEventReference(yourTextBox).Replace("'","//'"),
true);
private void textBox1_MouseClick(object sender, MouseEventArgs e)
{
this.monthCalendar1.Visible = true;
}
而不用TextChange事件。