2

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

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

2) 只有特定用户才能查看过去的几个月。对于所有其他用户,不应该有选择前几个月的按钮。

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

感谢您的提示!

4

1 回答 1

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>";
        }
于 2013-11-14T08:51:36.820 回答