关于博友mmiluy的弹出式Calendar控件的问题

简介:
   哈哈,强烈要求表扬!小废物呢,赶紧出来,给我开庆功会。。。
 
     呵呵, mmiluy几天前在他的blog上问了个关于Calendar控件的弹出式选择日期的要求。管家小废物真是热心啊,表扬一下,Q我说,让我帮他解决一下,不巧的是,我刚整理完系统,准备做JAVA的课题了,把.net都卸掉了,这不,昨天刚装上,帮mmiluy看看这个问题。
 
     其实,也没做什么,呵呵,在google上搜“myCalendar.displayCalendar”。。。不过,都是基于VS2003的,我改到了05下,基本上,就是做了个WEB UserControl,然后页面里加一下就OK。
 
     基本上,mmiluy应该知道如何建立用户控件等知识,下面我直接贴代码了,呵呵,快捷实用。
 
popUpCalendar.ascx-----------------------------------------
 
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="popUpCalendar.ascx.cs" Inherits="popUpCalendar" %>
<asp:panel id="pnlCalendar" Width="302px" Height="126px" runat="server">
 <asp:Calendar id="Calendar1" Width="307px" Height="164px" runat="server" BackColor="White" BorderColor="Black" BorderStyle="Solid" OnSelectionChanged="Calendar1_SelectionChanged" >
  <TodayDayStyle BackColor="#FFFFC0"></TodayDayStyle>
  <DayStyle Font-Size="8pt" Font-Names="Arial"></DayStyle>
  <DayHeaderStyle Font-Size="10pt" Font-Underline="True" Font-Names="Arial" BorderStyle="None" BackColor="#E0E0E0"></DayHeaderStyle>
  <SelectedDayStyle Font-Size="8pt" Font-Names="Arial" Font-Bold="True" ForeColor="White" BackColor="Navy"></SelectedDayStyle>
  <TitleStyle Font-Size="10pt" Font-Names="Arial" Font-Bold="True" ForeColor="White" BackColor="Navy"></TitleStyle>
  <OtherMonthDayStyle ForeColor="Gray"></OtherMonthDayStyle>
</asp:Calendar>
</asp:panel>
 
popUpCalendar.ascx.cs-----------------------------------------
 
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 popUpCalendar : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    public void displayCalendar(string sCalToolText, DateTime dSelectedDate, string sDateFieldName, int iTop, int iLeft)
    {
        if (pnlCalendar.Visible == false)
        {
            pnlCalendar.Style["top"] = iTop.ToString();
            pnlCalendar.Style["left"] = iLeft.ToString();
            Calendar1.SelectedDate = dSelectedDate;
            Calendar1.VisibleDate = dSelectedDate;
            Calendar1.ToolTip = sCalToolText;
            Calendar1.Attributes["SelectedField"] = sDateFieldName;
            pnlCalendar.Visible = true;
        }
        else
            hideCalendar();
    }
 
    public void hideCalendar()
    {
        pnlCalendar.Visible = false;
    }
 
    public void Calendar1_SelectionChanged(object sender, System.EventArgs e)
    {
        TextBox tbDate;
        tbDate = (TextBox)Page.FindControl(Calendar1.Attributes["SelectedField"]);
        if (tbDate != null)
        {
            tbDate.Text = Calendar1.SelectedDate.ToShortDateString();
        }
        hideCalendar();
    }
}
 
     以上是用户控件部分。下面是页面的使用,基本上,mmiluy在csdn上得到的代码就是调用户控件部分的代码,当然,也可以不做成用户控件,而把这些都写在一个页面里,呵呵,强烈不推荐这种方式。
dispCalendar.aspx--------------------------------------------
<%@ Page Language="C#" AutoEventWireup="false" CodeFile="dispCalendar.aspx.cs" Inherits="dispCalendar" %>
<%@ Register Src="popUpCalendar.ascx" TagName="popUpCalendar" TagPrefix="uc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " [url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">
<html xmlns=" [url]http://www.w3.org/1999/xhtml[/url]" >
<head runat="server">
    <title>无标题页</title>
</head>
 <body >
    <form id="form1" runat="server" >
        &nbsp;<table>
    <tr>
     <td width="75">
      Select&nbsp;Date:
     </td>
     <td>
      <asp:TextBox id="txtDate" runat="server" Width="86px"></asp:TextBox>
     </td>
     <td style="width: 31px">
         &nbsp;<asp:Button ID="btnSel" runat="server" OnClick="btnSel_Click" Text="选择日期" /></td>
    </tr>
   </table>
        &nbsp;
        <uc1:popUpCalendar ID="myCalendar" runat="server" />
 </form>
</body>
</html>
 
 
dispCalendar.aspx.cs-------------------------------------
 
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 dispCalendar : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            myCalendar.hideCalendar();
        }
    }
   
    protected void btnSel_Click(object sender, EventArgs e)
    {
        DateTime SelDate;
        try
        {
            SelDate = DateTime.Parse(txtDate.Text);
        }
        catch
        {
            SelDate = DateTime.Now;
        }
        myCalendar.displayCalendar("选择日期", SelDate, "txtDate", 20, 160);
    }
}
     OVER。。。。


本文转自 august 51CTO博客,原文链接:http://blog.51cto.com/august/10066,如需转载请自行联系原作者
相关文章
|
C#
WPF技术之Calendar控件
WPF Calendar控件是一个用于显示月历的控件。它提供了用户选择日期的功能,并能够在UI中呈现日期的布局和样式。
312 0
|
C++ Windows
2.1 窗口和控件
2.1 窗口和控件
2.1 窗口和控件
|
C# C++ 数据可视化
WPF Calendar 日历控件 样式自定义
原文:WPF Calendar 日历控件 样式自定义 粗略的在代码上做了些注释 blend 生成出来的模版 有的时候 会生成 跟 vs ui界面不兼容的代码 会导致可视化设计界面 报错崩溃掉 但是确不影响 程序的编译运行 这个样式表 在vs 里会提示动画不兼容 Foreground属性 报错 ...
1778 1
|
Android开发 iOS开发
带农历日历的DatePicker控件!Xamarin控件开发小记
原文:带农历日历的DatePicker控件!Xamarin控件开发小记 闲来无事开发了个日期选择控件,感兴趣的同学前往: https://github.com/MatoApps/Mato.DatePicker Mato.
1735 0
|
C#
分享一个WPF下日历控件(Calendar)的样式
原文:分享一个WPF下日历控件(Calendar)的样式 WPF日历控件的一个样式 WPF自带的日历控件样式可能会比较丑,要修改其样式看起来挺复杂的,实际上很简单,用Blend打开,修改三个模板,基本就能改变全部面貌,也很容易 先上图 样式如下: ...
1657 0
|
前端开发 API Android开发
|
C#
WPF 4 日历控件(Calendar)
原文:WPF 4 日历控件(Calendar)      在之前我已经写过两篇关于WPF 4 任务栏(Taskbar)相关的特性。相信自从VS2010 Beta 版放出后,WPF 的粉丝们肯定在第一时间了解了WPF 4 的一些新控件及新功能。
1213 0
|
C# 前端开发
【C#】wpf自定义calendar日期选择控件的样式
原文:【C#】wpf自定义calendar日期选择控件的样式 首先上图看下样式 原理 总览 ItemsControl内容的生成 实现 界面的实现 后台ViewModel的实现 首先上图,看下样式 原理 1. 总览: Calendar本质上是一个6x7的列表,这个列表可以用ItemsControl来实现。
1122 0
JavaFX控件——FileChooser(文件选择框)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Hanniel/article/details/78877164 和其他的接口组件不同,FileChooser 不属于javafx.scene.controls包,FileChooser 类在javafx.stage 包下,和其他主要的图形元素在一起,比如:Stage,Window,以及Popup。
2868 0