[b]一、效果图[/b]
[img]http://files.jb51.net/file_images/article/201309/2013916170702334.jpg[/img]
[b]二、页面文件[/b]
页面上需要添加<div id="cal"></div>标记。
[b]三、JS代码[/b]
[url=]
html += '<span class="thisYear">' + year + '</span>年' + '<span class="thisMonth">' + monthCn + '</span>月<span class="thisDate">' + date + '</span>';
html += ' <a id="nextMonth" href=""> >> </a></th></tr>';
html += '</th></tr>';
//显示星期标题
html += '<tr>';
for (var i = 0; i < 7; i++) {
html += '<td>' + dayCn(i) + '</td>';
}
html += '</tr>';
//显示日
for (var row = 1; row <= $rowMax; row++) {
html += '<tr>';
for (var col = 1; col <= 7; col++) {
if ($dayTd < fDay) {
html += '<td class="prev_dayN" dayn="' + $prev_dayN + '">' + $prev_dayN + '</td>';
$dayTd++;
$prev_dayN++;
} else {
var dayIndex = inArray($dayN, jsonDate(data));
var urlIndex = jsonUrl(data)[dayIndex - 1];
//如果有活动则使用活动样式并加上活动链接
if (dayIndex) {
//如果日期为当天则用红色加粗显示
if ($dayN == date && $nowMonth + 1 == monthCn && $nowYear == year) {
html += '<td class="activity now_date" dayn="' + $dayN + '" title="点击查看当天活动"><a href="' + urlIndex + '">' + $dayN + '</a></td>';
} else {
html += '<td class="activity" dayn="' + $dayN + '" title="点击查看当天活动"><a href="' + urlIndex + '">' + $dayN + '</a></td>';
}
} else {
//如果日期为当天则用红色加粗显示
if ($dayN == date && $nowMonth + 1 == monthCn && $nowYear == year) {
html += '<td class="now_date" dayn="' + $dayN + '">' + $dayN + '</td>';
} else {
html += '<td dayn="' + $dayN + '">' + $dayN + '</td>';
}
}
$dayN++;
}
if ($dayN > lDate) {
var $next_dayNum = (row * 7 - ($dayN - 1)) - ($dayTd - 1);
for (var i = 0; i < $next_dayNum; $next_dayNum--) {
html += '<td class="next_dayN" dayn="' + $next_dayN + '">' + $next_dayN + '</td>';
$next_dayN++;
}
break;
}
}
html += '</tr>';
}
//结束输出table
html += '</table>';
html += '<div id="cal_bottom"><a id="cal_close" href="">关闭</a></div>';
$('#cal').append(html);
}
[b]四、CSS文件[/b]
@CHARSET "UTF-8";
* {
list-style: none;
margin: 0px;
padding: 0px;
}
img {
border: 0;
}
a {
text-decoration: none;
color: #666;
}
a:hover {
text-decoration: none;
}
/* ================================================================================ */
/* 日历Div全局样式 */
#cal {
width: 245px;
}
#cal_bottom {
padding: 2px;
border-top: 0;
text-align: right;
}
/* 日历Table样式 */
table {
border: 0;
border-collapse: collapse;
border-spacing: 0;
}
tr {
height: 30px;
line-height: 30px;
}
th {
font-weight: normal;
}
.thisDate {
display: none;
}
#prevMonth {
}
.nextMonth {
}
th a {
display: inline-block;
vertical-align: 1px;
}
td {
width: 35px;
text-align: center;
}
td a {
display: inline-block;
width: 100%;
height: 100%;
}
/* 当前日样式 */
.now_date {
background: #BBB;
}
/* 月前,月后样式 */
.prev_dayN, .next_dayN {
color: #CCC;
}
/* 活动数据样式 */
.activity {
}
.activity a {
color: #2F76AC;
text-decoration: underline;
}
[b]五、后台代码[/b]
//日历控件获取当前月发布文章的天
public ActionResult getCalandDay(string year, string month)
{
string userId = getBlogUserId();
StringBuilder output = new StringBuilder("");
DateTime dt = System.DateTime.Now;
string curMonth = year.ToString() + (month.Length == 1 ? ("0" + month) : month);
var res = db.Database.SqlQuery<CurMonthArticleViewModel>("select id,createtime from article where mid='" + userId + "' and to_char(createtime,'YYYYMM')='" + curMonth + "'").ToList();
int i=0;
output.Append("new Array(");
foreach (var cc in res)
{
if (i == 0)
output.Append("{ hDongD:"+cc.CREATETIME.Day+", hDongUrl: '"+cc.ID+"' }");
else
{
string curDay = cc.CREATETIME.Day.ToString();
string resultDay = output.ToString();
string[] str = resultDay.Split(','); //得到一个str的数组{“1”,”2“,“3”,”4“,“5”,”6“}
Boolean c = true;
foreach (string s in str)
{
if (s == curDay) c = false;
}
if (c)
{
output.Append(",{ hDongD:" + cc.CREATETIME.Day + ", hDongUrl: '/" + cc.ID + "--" + cc.CREATETIME + "' }");
}
}
i++;
}
output.Append(");");
return Json(output.ToString());
//return Json("new Array({ hDongD: 4, hDongUrl: 'http://www.1sucai.cn' }, { hDongD: 14, hDongUrl: 'http://play.jb51.net' });");
}