问一个让我头疼3天的问题.关于日期控件
首先我感谢看贴子的人,有点麻烦.有时间的朋友详细看下.
日期控件高级应用问题.我做的是一个添加公休日的界面.
我自己改写了日期控件Calendar,
HTML代码如下:
<table>
<tr>
<td align="right" colspan="8" style="height: 1px">
年:<asp:TextBox ID="txtYear" runat="server" MaxLength="4" CssClass="TextBox" ></asp:TextBox>
月:<asp:DropDownList ID="dropMonth" runat="server" CssClass="DropDownList" OnSelectedIndexChanged="dropMonth_SelectedIndexChanged" AutoPostBack="True">
<asp:ListItem Value="01">一月</asp:ListItem>
<asp:ListItem Value="02">二月</asp:ListItem>
<asp:ListItem Value="03">三月</asp:ListItem>
<asp:ListItem Value="04">四月</asp:ListItem>
<asp:ListItem Value="05">五月</asp:ListItem>
<asp:ListItem Value="06">六月</asp:ListItem>
<asp:ListItem Value="07">七月</asp:ListItem>
<asp:ListItem Value="08">八月</asp:ListItem>
<asp:ListItem Value="09">九月</asp:ListItem>
<asp:ListItem Value="10">十月</asp:ListItem>
<asp:ListItem Value="11">十一月</asp:ListItem>
<asp:ListItem Value="12">十二月</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<asp:Calendar ID="Calendar1" runat="server" Height="600px" NextMonthText="下一月" OnDayRender="Calendar1_DayRender" SelectedDate="<%# GetDate() %>" PrevMonthText="上一月" Width="100%" SelectionMode="None" ForeColor="Black" OnSelectionChanged="Calendar1_SelectionChanged" Font-Size="10pt" BackColor="Gainsboro" BorderColor="Black" Font-Names="Times New Roman" ShowTitle="False" DayNameFormat="Full" NextPrevFormat="FullMonth" TitleFormat="Month" ShowGridLines="True">其他样式(略)</asp:Calendar>
</table>
我实现的是在日期控件上点选日期,并为此天选择休假类型(1假日2法定假日)和备注(remark)
数据表字段为: YY(年) MM(月) DD(日) HolidayKind(休假类型) Remark(备注) 我定义的都为String型 实现添加假日记录
页面后台:首先实例化MODEL实体类 和 BLL
HolidaySet holidayset = new HolidaySet();
HolidaysSetModel holidaysetModel = new HolidaysSetModel();
private static DateTime date = new DateTime();
后台定义了OnDayRender="Calendar1_DayRender"事件
代码如下:
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
//获取表示在日历控件中的日期CalendarDay
CalendarDay d = ((DayRenderEventArgs)e).Day;
//获取表示在日历控件中单元格的TableCell
TableCell c = ((DayRenderEventArgs)e).Cell;
//生成单元格的日期是否属于显示的月份,如果不属于显示的月份,则清除此单元格里的内容
if (d.IsOtherMonth)
{
c.Controls.Clear();
}
else
{
try
{
DateTime dt = d.Date;
//显示超连接,自定义一个HyperLink,并设置好属性
HyperLink aHyperLink = new HyperLin