在asp.net中自定义webcalendar

时间:2013-11-14 08:40:52

标签: c# asp.net

我想通过以下方式自定义asp:Calendar-Element:

1)每天都有一个下拉列表,有6-7个短语,如(不在办公室,节假日)等等。并且根据您单击的选项,该da的颜色会发生变化。此外,选定的optin应保存到数据库中。

2)只有某些用户应该能够查看过去几个月。对于所有其他用户,应该没有用于选择前几个月的按钮。

这个日历可以吗?有没有人以这种方式修改它并可以给我一些提示?或者我是否需要自己创建这样的日历?

感谢您的提示!

1 个答案:

答案 0 :(得分:3)

是的,您可以使用您的asp.net日历,但您可以使用CSS和jQuery自定义您的asp.net日历。我过去也用asp.net日历实现了。以下代码仅供您参考。

<style type="text/css">
    .Calendar {border:none;}
    .Calendar img{ border:none;}
    .Calendar .Title {background-color:#7D9459;background-image:url(../Images/title_bg.gif);border: 1px solid black;border-bottom-width: 0px;}
    .Calendar .Title td {font-family:verdana;font-size:11px;font-weight:bold;color:White;padding-top:1px;padding-bottom:1px;}
    .Calendar .DayHeader {background-color:#E3E0CD;background-image:url(../Images/header_bg.gif);color:#504C39;font-family:Verdana;font-size:11px;text-align:center;border-top:solid 1px #FFFFFF; border-left:solid 1px #FFFFFF; border-bottom:solid 1px #ACA899;border-right:solid 1px #C6C1AC; padding: 4px; font-weight:normal;}
    .Calendar .Day {width:90px;  height:70px;  text-align:center; vertical-align:top; font-family:Verdana; font-size:11px; color:Black; background-color:#FFFFFF;  border:solid 1px #C6C1AC; padding:2px;}
    .Calendar .OtherMonthDay {background-color:#F5F3E5;}
</style>

<asp:Calendar ID="MeetingCalendar" runat="server" CssClass="Calendar" TitleStyle-BackColor="Transparent"
                                CellPadding="0" BorderWidth="0px" Width="" DayNameFormat="Full" OnDayRender="MeetingCalendar_DayRender"
                                TitleStyle-CssClass="Title" DayHeaderStyle-CssClass="DayHeader" DayStyle-CssClass="Day"   
                                DayStyle-Width="90px" OtherMonthDayStyle-CssClass="Day OtherMonthDay" NextMonthText="<img src='../Images/next_wht.gif' alt='' style='float:right;' />"
                                PrevMonthText="<img src='../Images/prev_wht.gif' alt='' style='float:left;'/>" 
                                onvisiblemonthchanged="MeetingCalendar_VisibleMonthChanged">
                            </asp:Calendar>


protected void MeetingCalendar_DayRender(object sender, DayRenderEventArgs e)
        {
            string dayNumber = e.Day.Date.Day.ToString();
            e.Cell.Text = dayNumber + "<br />"; 

            e.Cell.Text += "<div align='center'>";
            e.Cell.Text += "    <a href='DailyMeetings.aspx?id=10' title='Day has meeting(s) scheduled.'>";
            e.Cell.Text += "            <img src='../Images/meeting.gif' height='25' width='25' alt='' border='0' />";
            e.Cell.Text += "        </a>";
            e.Cell.Text += "</div>";
        }