>  기사  >  백엔드 개발  >  캘린더 기반의 블로그 캘린더 구현 상세 예시

캘린더 기반의 블로그 캘린더 구현 상세 예시

零下一度
零下一度원래의
2017-07-09 11:45:271658검색

이 글에서는 주로 asp.netCalendar 기반의 블로그 캘린더 기능 구현을 소개합니다. asp.net에서 Calendar 컨트롤을 사용하여 날짜 및 시간 관련 계산 기술을 조작하는 방법을 소개합니다. 도움이 필요한 친구들이 참고할 수 있습니다

이 글에서는 asp.net의 예는 캘린더를 기반으로 블로그 캘린더 기능을 구현합니다. 자세한 내용은 다음과 같습니다.

.net 캘린더 컨트롤을 사용하여 블로그에서 사이트 캘린더의 효과를 얻는 방법 사이트 캘린더의 가장 중요한 기능은 표시하는 것입니다. 블로그 소유자가 블로그를 작성한 날짜를 클릭하면 선택한 날짜의 로그 목록이 입력됩니다.

우선 .net의 서버 제어가 첫 번째 날에 포스트백을 수행한다는 것을 알고 있습니다. 캘린더 컨트롤을 클릭하면 포스트백이 수행됩니다. 우리가 해야 할 일은 포스트백 이벤트가 발생하지 않도록 기본 링크를 변경하는 것입니다. 둘째, 어떤 날짜에 로그가 있는지 확인하는 것입니다. 로그가 있는지 여부는 데이터베이스에 가서 쿼리해야 합니다. 캘린더에는 매일 날짜가 표시될 때 트리거되는 DayRender 이벤트가 있습니다. 여기서부터 먼저

array

variable:

private int[] arrCurrentDays, arrPreDays, arrNextDays; //三个变量分别是当前月,前一月,和下一个月
private int intCurrentMonth, intPreMonth, intNextMonth; //三个整型数组存放相对月份写有blog的日期
을 정의한 후 캘린더의 DayRender 이벤트에 다음 코드를 작성하세요.
CalendarDay d = ((DayRenderEventArgs)e).Day;
TableCell c = ((DayRenderEventArgs)e).Cell;
// 初始化当前月有Blog的日期数组
if (intPreMonth == 0)
{
  intPreMonth = d.Date.Month; // 注意:日历控件初始化时我们得到的第一个月并不是当前月,而是前一个月的月份
  intCurrentMonth = intPreMonth + 1;
  if (intCurrentMonth > 12)
    intCurrentMonth = 1;
  intNextMonth = intCurrentMonth + 1;
  if (intNextMonth > 12)
    intNextMonth = 1;
  arrPreDays = getArrayDay(d.Date.Year, intPreMonth); //得到前一个月有blog的日期数组
  arrCurrentDays = getArrayDay(d.Date.Year, intCurrentMonth);//得到当月有blog的日期数组
  arrNextDays = getArrayDay(d.Date.Year, intNextMonth);//得到下个月有blog的日期数组
}
int j = 0;
if (d.Date.Month.Equals(intPreMonth))
{
  while (!arrPreDays[j].Equals(0))
  {
    if (d.Date.Day.Equals(arrPreDays[j]))
    {
      c.Controls.Clear();
      c.Controls.Add(new LiteralControl("<a href="day.aspx?year=" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" mce_href="day.aspx?year=" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" " + d.Date.Year + "&month=" +
      d.Date.Month + "&day=" + d.Date.Day + ">" + d.Date.Day + "</a>"));
    }
    j++;
  }
}
else if (d.Date.Month.Equals(intCurrentMonth))
{
  while (!arrCurrentDays[j].Equals(0))
  {
    if (d.Date.Day.Equals(arrCurrentDays[j]))
    {
      c.Controls.Clear();
      c.Controls.Add(new LiteralControl("<a href="day.aspx?year=" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" mce_href="day.aspx?year=" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" " + d.Date.Year + "&month=" +
      d.Date.Month + "&day=" + d.Date.Day + " title=查看"+d.Date.Day+"日日志>" + d.Date.Day + "</a>"));
    }
    j++;
  }
}
else if (d.Date.Month.Equals(intNextMonth))
{
  while (!arrNextDays[j].Equals(0))
  {
    if (d.Date.Day.Equals(arrNextDays[j]))
    {
      c.Controls.Clear();
      c.Controls.Add(new LiteralControl("<a href="day.aspx?year=" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" mce_href="day.aspx?year=" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" " + d.Date.Year + "&month=" +
      d.Date.Month + "&day=" + d.Date.Day + ">" + d.Date.Day + "</a>"));
    }
    j++;
  }

여기서 주목해야 할 점은

메소드는 데이터베이스에서 이번 달의 로그가 있는지 쿼리하는 것이며, 제가 작성한 내용은 다음과 같습니다.

위 내용은 캘린더 기반의 블로그 캘린더 구현 상세 예시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.