引言

出差终于回来了,这篇文章算是这个月的博客的开篇吧。

上篇文章:[Asp.net]Calendar+JqueryUi实现日程管理——添加日程

上篇文章主要贴了一些该项目的界面,这里面,将主要代码也贴出来分享一下。

项目

数据库设计

 USE [Wolfy.Schedule]
GO /****** Object: Table [dbo].[TB_Schedule] Script Date: 2014/7/5 16:30:00 ******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO SET ANSI_PADDING ON
GO CREATE TABLE [dbo].[TB_Schedule](
[scheduleId] [int] IDENTITY(1,1) NOT NULL,
[scheduleDescription] [nvarchar](320) NULL,
[scheduleCreateDate] [datetime] NULL,
[scheduleColor] [varchar](32) NULL,
[scheduleTitle] [nvarchar](160) NULL,
[userId] [int] NOT NULL,
[schedulePlanDate] [datetime] NULL,
CONSTRAINT [PK_TB_Schedule] PRIMARY KEY CLUSTERED
(
[scheduleId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] GO SET ANSI_PADDING OFF
GO

TB_Schedule

 USE [Wolfy.Schedule]
GO /****** Object: Table [dbo].[TB_UserInfo] Script Date: 2014/7/5 16:30:22 ******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO SET ANSI_PADDING ON
GO CREATE TABLE [dbo].[TB_UserInfo](
[userId] [int] IDENTITY(1,1) NOT NULL,
[userName] [nvarchar](20) NULL,
[userGender] [bit] NULL,
[userLoginName] [varchar](32) NULL,
[userPwd] [varchar](32) NULL,
[userCreateDate] [datetime] NULL,
[userIsDelete] [bit] NULL,
[userBirthday] [datetime] NULL,
[userLoginCount] [int] NULL,
[userAge] [int] NULL,
CONSTRAINT [PK_TB_UserInfo] PRIMARY KEY CLUSTERED
(
[userId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] GO SET ANSI_PADDING OFF
GO

TB_UserInfo

日程管理界面

添加

编辑

删除

代码实现

 <%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Main.Master" CodeBehind="ScheduleManage.aspx.cs" Inherits="Wolfy.ScheduleDemo.ScheduleManage" %>

 <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<link href="js/Dialog/css/redmond/jquery-ui-1.10.4.custom.css" rel="stylesheet" />
<script type="text/javascript" src="js/jquery-1.11.0.js"></script>
<script type="text/javascript" src="js/Dialog/js/jquery-ui-1.10.4.custom.js"></script>
<script type="text/javascript" src="js/jquery.contextmenu.r2.packed.js"></script>
<script type="text/javascript">
$(function () { $("#dialog").dialog({
autoOpen: false,// 初始化之后,是否立即显示对话框,默认为 true
width: 450,
modal: true,//是否模式对话框,默认为 false
draggable: true,//是否允许拖动,默认为 true
resizable: true,//是否可以调整对话框的大小,默认为 true
title: "添加日程",
position: "center",//用来设置对话框的位置,有三种设置方法 1. 一个字符串,允许的值为 'center', 'left', 'right', 'top', 'bottom'. 此属性的默认值即为 'center',表示对话框居中。 2. 一个数组,包含两个以像素为单位的位置,例如, var dialogOpts = { position: [100, 100] }; 3. 一个字符串组成的数组,例如, ['right','top'],表示对话框将会位于窗口的右上角。var dialogOpts = { position: ["left", "bottom"] }; }); $("#btnSave").click(function () {
var strScheduleTitle = $("#<%=txtScheduleTitle.ClientID%>").val();
var strScheduleDescription = $("#<%=txtScheduleDescription.ClientID%>").val();
var strhdColor = $("#<%=hdColor.ClientID%>").val();
var strlblSchedulePlanDate = $("#<%=lblSchedulePlanDate.ClientID%>").html();
var strScheduleID = $("#<%=hdScheduleID.ClientID%>").val(); $.ajax({
type: "POST",//
url: "ScheduleManage.aspx/AddSchedule",
data: "{strScheduleTitle:'" + strScheduleTitle + "',strScheduleDescription:'" + strScheduleDescription + "',strhdColor:'" + strhdColor + "',strlblSchedulePlanDate:'" + strlblSchedulePlanDate + "',strScheduleID:'" + strScheduleID + "'}",
contentType: "application/json",
dataType: "json",
success: function (data) {
$("#dialog").dialog("close");
if (data.d == 1) { alert("添加成功")
} else if (data.d == 2) {
alert("添加失败");
} else if (data.d == 3) {
alert("修改成功");
} else {
alert("修改失败");
}
window.location = window.location;
},
error: function (msg) {
alert(msg.status);
}
});
});
// 打开日程添加窗口
$("td[date]").each(function () { //为每个单元格绑定右键菜单
$(this).contextMenu('myMenu1', {
//绑定右键菜单,通过ul,li的ID绑定
bindings:
{
'add': function (e) { $("#<%=lblSchedulePlanDate.ClientID%>").text($("#" + e.id).attr("date"));
$("#<%=txtScheduleTitle.ClientID%>").val("");
$("#<%=txtScheduleDescription.ClientID%>").val("");
$("#btnSave").val("添加");
$("#dialog").dialog("open");
},
'edit': function (e) {
var strScheduleID = $("#" + e.id).attr("scheduleId");
if (strScheduleID == "NO") {
alert("亲,该日没有日程安排,无法编辑,谢谢!");
return;
} else {
$("#<%=hdScheduleID.ClientID%>").val(strScheduleID);
}
$("#btnSave").val("编辑"); $.ajax({
type: "POST",//
url: "ScheduleManage.aspx/EditSchedule",
data: "{strScheduleID:'" + strScheduleID + "'}",
contentType: "application/json",
dataType: "json",
success: function (data) {
$("#<%=txtScheduleTitle.ClientID%>").val(data.d[1]);
$("#<%=txtScheduleDescription.ClientID%>").val(data.d[1]); $("#<%=hdColor.ClientID%>").val(data.d[4]);
$("#" + data.d[4]).text("√");
$("#" + data.d[4]).siblings().text(""); $("#<%=lblSchedulePlanDate.ClientID%>").html(data.d[5]); },
error: function (msg) {
alert(msg.status);
}
});
$("#dialog").dialog("open");
},
'delete': function (e) {
var strScheduleID = $("#" + e.id).attr("scheduleId"); if (strScheduleID == "NO") {
alert("亲,该日没有日程安排,无法删除,谢谢!");
return;
} $.ajax({
type: "POST",//
url: "ScheduleManage.aspx/DeleteSchedule",
data: "{strScheduleID:'" + strScheduleID + "'}",
contentType: "application/json",
dataType: "json",
success: function (data) {
if (data.d == 1) {
$("#dialog").dialog("close");
alert("删除成功"); } else {
alert("删除失败");
}
window.location = window.location;
},
error: function (msg) {
alert(msg.status);
}
});
}
}
}); });
$("#btnCancel").click(function () {
$("#dialog").dialog("close");
});
$("#tbColor tr td").each(function () {
$(this).click(function () {
$(this).text("√");
$("#<%=hdColor.ClientID%>").val($(this).css("background-color"));
$(this).siblings().text("");
});
});
});
</script> </asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:Calendar ID="CalendarSchedule" runat="server"
BorderColor="#FFCC66" NextPrevStyle-Height="10px" Height="500px" Width="100%" BackColor="#FFFFCC" BorderWidth="1px" DayNameFormat="Shortest" Font-Names="Verdana" Font-Size="8pt" ForeColor="#663399" OnDayRender="CalendarSchedule_DayRender" ShowGridLines="True" OnSelectionChanged="CalendarSchedule_SelectionChanged" OnVisibleMonthChanged="CalendarSchedule_VisibleMonthChanged">
<DayHeaderStyle BackColor="#FFCC66" Font-Bold="True" Height="1px" />
<NextPrevStyle Height="10px" Font-Size="9pt" ForeColor="#FFFFCC"></NextPrevStyle>
<OtherMonthDayStyle ForeColor="#CC9966" />
<SelectedDayStyle BackColor="#CCCCFF" Font-Bold="True" />
<SelectorStyle BackColor="#FFCC66" />
<TitleStyle BackColor="#990000" Height="50px" Font-Bold="True" Font-Size="9pt" ForeColor="#FFFFCC" />
<TodayDayStyle BackColor="#FFCC66" ForeColor="White" />
</asp:Calendar>
<div style="display: none" id="dialog">
<table class="insert-tab" width="100%">
<tbody>
<tr>
<th width="120"><i class="require-red">*</i>日程标题:</th>
<td>
<asp:TextBox ID="txtScheduleTitle" CssClass="common-text required" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<th>日程描述:</th>
<td>
<asp:TextBox ID="txtScheduleDescription" TextMode="MultiLine" CssClass="common-textarea" cols="30" Style="width: 98%;" Rows="5" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<th>日程创建时间:</th>
<td>
<asp:Literal Text="" ID="ltlScheduleCreateDate" runat="server" /></td>
</tr>
<tr>
<th><i class="require-red">*</i>日程颜色标识:</th>
<td>
<table id="tbColor" width="100%" border="1" style="height: 30px;">
<tr align="center">
<td id="red" style="background-color: red">√</td>
<td id="yellow" style="background-color: yellow"></td>
<td id="green" style="background-color: green"></td>
<td id="blue" style="background-color: blue"></td>
</tr>
</table>
</td>
</tr>
<tr>
<th>计划时间:</th>
<td>
<asp:Label Text="" ID="lblSchedulePlanDate" runat="server" />
</td>
</tr>
<tr align="center">
<th></th>
<td>
<input type="button" id="btnSave" class="btn btn-primary btn6 mr10" name="name" value="添加" />
<input type="button" id="btnCancel" class="btn btn6" name="name" value="取消" />
</td>
</tr> </tbody>
</table>
<asp:HiddenField runat="server" ID="hdColor" Value="red" />
<asp:HiddenField runat="server" ID="hdScheduleID" Value="NO" /> </div>
<div class="contextMenu" id="myMenu1">
<ul>
<li id="add">添加</li>
<li id="edit">编辑</li>
<li id="delete">删除</li>
</ul>
</div> </asp:Content>

ScheduleManage.aspx

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.WebControls;
using Wolfy.Schedule.BLL;
using Wolfy.Schedule.Model;
namespace Wolfy.ScheduleDemo
{
public partial class ScheduleManage : PageBase
{
private static Schedule.Model.UserInfo _userInfo = null;
Schedule.BLL.ScheduleBLL _scheduleBLL = new ScheduleBLL();
IList<Schedule.Model.Schedule> _lstSchedules = null;
DateTime dtCurrentDate = DateTime.Now; //当前
DateTime dtPriviousDate = DateTime.Now.AddMonths(-); //上一个月
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{ _userInfo = Session["user"] as UserInfo;
this.ltlScheduleCreateDate.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
this.CalendarSchedule.SelectedDate = DateTime.Now;
} _lstSchedules = _scheduleBLL.GetModelList(" userid=" + _userInfo.userId + " and SchedulePlanDate>='" + dtPriviousDate.AddDays(-) + "' and SchedulePlanDate <='" + dtCurrentDate.AddDays() + "'");
}
/// <summary>
/// 初始化日历
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void CalendarSchedule_DayRender(object sender, DayRenderEventArgs e)
{ e.Cell.Attributes.Add("date", e.Day.Date.ToString("yyyy-MM-dd"));
e.Cell.Attributes.Add("id", "td" + e.Day.Date.ToString("MMdd"));
e.Cell.Attributes.Add("scheduleId", "NO");
if (_lstSchedules != null && _lstSchedules.Count > )
{ foreach (Schedule.Model.Schedule schedule in _lstSchedules)
{
if (e.Day.Date.ToString("yyyy-MM-dd").Equals(schedule.SchedulePlanDate.ToString("yyyy-MM-dd")))
{
e.Cell.Style.Add("background-color", schedule.scheduleColor);
e.Cell.Attributes.Add("scheduleId", schedule.scheduleId.ToString());
e.Cell.Text = schedule.scheduleTitle + "<br/>" + schedule.scheduleDescription;
e.Cell.Font.Bold = true;
e.Cell.Font.Size = FontUnit.Smaller;
}
}
} } protected void CalendarSchedule_SelectionChanged(object sender, EventArgs e)
{ }
/// <summary>
/// 添加日程
/// </summary>
/// <param name="strScheduleTitle">日程标题</param>
/// <param name="strScheduleDescription">日程描述</param>
/// <param name="strhdColor">标识颜色</param>
/// <param name="strlblSchedulePlanDate">计划时间</param>
/// <returns>1:成功,2:失败</returns>
[WebMethod]
public static string AddSchedule(string strScheduleTitle, string strScheduleDescription, string strhdColor, string strlblSchedulePlanDate, string strScheduleID)
{
//添加
if (strScheduleID == "NO")
{
Schedule.Model.Schedule schedule = new Schedule.Model.Schedule();
schedule.scheduleCreateDate = DateTime.Now;
schedule.scheduleColor = strhdColor;
schedule.scheduleDescription = strScheduleDescription;
schedule.SchedulePlanDate = Convert.ToDateTime(strlblSchedulePlanDate);
schedule.scheduleTitle = strScheduleTitle;
schedule.userId = _userInfo.userId;
ScheduleBLL scheduleBLL = new ScheduleBLL();
if (scheduleBLL.Add(schedule))
{
return "";
}
else
{
return "";
}
}
else
{
//编辑
Schedule.Model.Schedule schedule = new Schedule.Model.Schedule();
schedule.scheduleId = Convert.ToInt32(strScheduleID);
schedule.scheduleCreateDate = DateTime.Now;
schedule.scheduleColor = strhdColor;
schedule.scheduleDescription = strScheduleDescription;
schedule.SchedulePlanDate = Convert.ToDateTime(strlblSchedulePlanDate);
schedule.scheduleTitle = strScheduleTitle;
schedule.userId = _userInfo.userId;
ScheduleBLL scheduleBLL = new ScheduleBLL();
if (scheduleBLL.Update(schedule))
{
return "";
}
else
{
return "";
}
} }
/// <summary>
/// 编辑日程
/// </summary>
/// <param name="shecduleID">日程id</param>
/// <returns></returns>
[WebMethod]
public static string[] EditSchedule(string strScheduleID)
{
if (string.IsNullOrEmpty(strScheduleID))
{
return new string[];
}
else
{
int intScheduleID = Convert.ToInt32(strScheduleID);
ScheduleBLL scheduleBLL = new ScheduleBLL();
IList<Schedule.Model.Schedule> lstSchedules = scheduleBLL.GetModelList(" userid=" + _userInfo.userId + " and scheduleId=" + intScheduleID + "");
if (lstSchedules.Count > )
{
Schedule.Model.Schedule schedule = lstSchedules[];
return new string[] { schedule.scheduleId.ToString(), schedule.scheduleTitle, schedule.scheduleDescription, Convert.ToDateTime(schedule.scheduleCreateDate).ToString("yyyy-MM-dd hh:mm:ss"), schedule.scheduleColor, schedule.SchedulePlanDate.ToString("yyyy-MM-dd") };
}
else
{
return new string[];
}
}
}
/// <summary>
/// 删除日程
/// </summary>
/// <param name="secheduleID">日程id</param>
/// <returns></returns>
[WebMethod]
public static string DeleteSchedule(string strScheduleID)
{
if (string.IsNullOrEmpty(strScheduleID))
{
return "";
}
else
{
int intScheduleID = Convert.ToInt32(strScheduleID);
ScheduleBLL scheduleBLL = new ScheduleBLL();
if (scheduleBLL.Delete(intScheduleID))
{
return "";
}
else
{
return "";
}
}
}
/// <summary>
/// 月改变时触发的事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void CalendarSchedule_VisibleMonthChanged(object sender, MonthChangedEventArgs e)
{
dtCurrentDate = e.NewDate;
dtPriviousDate = e.PreviousDate;
_lstSchedules = _scheduleBLL.GetModelList(" userid=" + _userInfo.userId + " and SchedulePlanDate>='" + dtPriviousDate.AddDays(-) + "' and SchedulePlanDate <='" + dtCurrentDate.AddDays() + "'");
}
}
}

ScheduleManage.aspx.cs

总结

这里只是实现了功能的业务逻辑,很多细节没有考虑到,也没采用form验证或者windows验证,就拿那个代码写着顺手就采用哪种方式来写了。数据库设计也没考虑范式要求,就把能想到的都列出来了,业务逻辑清楚了,添加其他的字段就不难了。这里也把项目分享一下,有需要的可以下载,如果觉得不错,不妨推荐一下。

项目下载:链接:http://pan.baidu.com/s/1qWwgYJy 密码:2qx0

[Asp.net]Calendar+JqueryUi实现日程管理(右键菜单,添加,编辑,删除,源码)的更多相关文章

  1. [Asp.net]Calendar+JqueryUi实现日程管理——添加日程

    引言 之前在博客园里看到一篇文章,介绍的云日程,所以就一直在想如果是自己该如何实现,所以就自己尝试弄了一个简单的demo. 项目 效果图 日历控件,本来想弄一个js版的,后来考虑,js版的会花费更多的 ...

  2. 一步一步Asp.Net MVC系列_权限管理总结(附MVC权限管理系统源码)

    在上一节中我们总结了关于权限控制的方式,我们这一节讲解关于权限控制中角色权限的授予处理等等并做本系列的总结. 首先,我们来谈谈权限控制中角色权限的控制,上一节只是针对权限拦截中比较粗的控制,如果我们需 ...

  3. 系统右键菜单添加剪贴板清空项(隐藏DOS窗口)

    @color 0A @title 系统右键菜单添加剪贴板清空项(隐藏DOS窗口) by wjshan0808 @echo off echo 请输入右键菜单名称 set /p name= ::创建本机A ...

  4. win7下给右键菜单添加启动cmd命令

    win7下给右键菜单添加启动cmd命令 (2013-07-20 19:20:56) 转载▼ 标签: it 右键 cmd 分类: 小软件操作技巧     最近编辑器在用windows下的gvim,但进入 ...

  5. Windows下给鼠标右键菜单添加获得完全控制权限的菜单项

    这段时间计算机C分区里多了很多无用的文件,而且不在同一个目录下,搜索出来删除的时候提示没有管理员权限,需要在右键属性里面修改,非常麻烦,于是查询了一下发现可以在文件右键菜单添加一个获取权限的菜单项,这 ...

  6. 《ArcGIS Engine+C#实例开发教程》第六讲 右键菜单添加与实现

    原文:<ArcGIS Engine+C#实例开发教程>第六讲 右键菜单添加与实现 摘要:在这一讲中,大家将实现TOCControl控件和主地图控件的右键菜单.在AE开发中,右键菜单有两种实 ...

  7. 软件包管理_rpm命令管理_yum工具管理_文件归档压缩_源码包管理

    rpm命令管理软件 对于挂载的像U盘那种都会在midea目录下,但是会显示在桌面上 安装软件(i:install,v:verbose冗长的,h:human):rpm  -ivh  xxxx.rpm 安 ...

  8. VSTO 为Office已有右键菜单添加自己的菜单项(word,Excel)

    原文:VSTO 为Office已有右键菜单添加自己的菜单项(word,Excel) private void AddRightMenu()         {            Microsoft ...

  9. 为Windows资源管理器右键菜单添加菜单项

    为Windows资源管理器右键菜单添加菜单项 在Windows下命令行用的比较多,经常在资源管理器里翻到某个目录,若想要在此目录下跑命令,只能是打开cmd.exe,然后一路cd才能到达此目录. 每次都 ...

随机推荐

  1. iframe里面的页面调用父窗口,左右窗口js函数的方法

      iframe里面的页面调用父窗口,左右窗口js函数的方法 实现iframe内部页面直接调用该iframe所属父窗口自定义函数的方法. 比如有A窗口,A内有个IFRAME B,B里面的装载的是C页面 ...

  2. POJ 1755 Triathlon (半平面交)

    Triathlon Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4733   Accepted: 1166 Descrip ...

  3. GCC安装UBUNTU

    在Ubuntu下安装GCC和其他一些Linux系统有点不一样. 方法一: 该方法超简单:sudo apt-get  build-depgcc 就上面这条命令就可以搞定 方法二:sudo apt-get ...

  4. s:iterator巧妙控制跳出循环

    <s:set name="index" value="1" /> <s:iterator value="#detail.member ...

  5. 🌅 使用 Dawn 快速搭建 React 项目!

    开发一个 React 项目,通常避免不了要去配置 Webpack 和 babel 之类,以支持 commonjs 或 es 模块及各种 es 新语法,及进行 jsx 语法的转义.当然也可以用 crea ...

  6. signal

    //signaltest.c // 子线程阻塞,等待信号,然后输出字符串 // 主线程从键盘录入字符,给子线程发信号. #include <stdio.h> #include <un ...

  7. Python学习 —— 阶段综合练习一

    Python 阶段综合练习一 综合之前的函数.数据结构.流程控制等,做以下实例练习:(建议先不要看代码,自己先试着写:代码仅供参考,有多种实现方法) 1. 定义 is_Even 函数,传一 int 参 ...

  8. Windows之权限讲解

    windows中,权限指的是不同账户对文件,文件夹,注册表等的访问能力.在windows中,为不同的账户设置权限很重要,可以防止重要文件被其他人所修改,使系统崩溃. 1权限概念 我们可以在控制面板中设 ...

  9. hadoop中OutputFormat 接口的设计与实现

    OutputFormat 主要用于描述输出数据的格式,它能够将用户提供的 key/value 对写入特定格式的文件中. 本文将介绍 Hadoop 如何设计 OutputFormat 接口 , 以及一些 ...

  10. IIs 中运行asp程序出现“An error occurred on the server when processing the URL. Please contact the system administrator.”错误

    在个人的win08系统上使用IIs运行 asp程序结果出现了以下错误 An error occurred on the server when processing the URL. Please c ...