ASP.NET My97DatePicker日期控件实现OA日期记事功能

部分代码:
Default页布局一个Calendar日期控件

?
1
2
3
4
5
< div >
    < asp:Calendar ID = "Calendar1" runat = "server" Width = "100%"
      ShowGridLines = "True" ondayrender = "Calendar1_DayRender" >
    </ asp:Calendar >
  </ div >

Default页cs代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Text;
 
public partial class _Default : System.Web.UI.Page
{
   private DataTable table ;
 
   protected void Page_Load( object sender, EventArgs e)
   {
     
   }
   protected void Calendar1_DayRender( object sender, DayRenderEventArgs e)
   {
     //获取现在绑定的日期
     CalendarDay day = e.Day;
     //获取当前日期的单元格
     TableCell cell = e.Cell;
 
     int currentMonth = DateTime.Now.Month ;
     cell.Controls.Clear();
     table = PlanOperator.SelectPlanByMonth(day.Date);
     if (day.Date.Month >= currentMonth)
     {
       StringBuilder builder = new StringBuilder();
       builder.AppendFormat( "<font color='Blue'><h5>{0}</h5></font><img src='images/add.png' alt='添加日程' onclick='window.open(\"EditPlan.aspx?Action=New&StartDate={0}\",\"\",\"menu=no,tool=no,status=no,width=400,height=500\");' /> <br/>" , day.Date.ToShortDateString());
       DataRow[] planRows = table.Select( string .Format( "StartDate<='{0}' AND EndDate>='{1}' " , day.Date, day.Date.AddDays(1)));
 
       cell.Style[ "background-color" ] = planRows.Length <= 0 ? "#E9E9E9" : "#FFFFFF" ;
 
       int index = 1;
       foreach (DataRow row in planRows)
       {
         string title = row[ "Title" ].ToString().Length > 10 ? row[ "Title" ].ToString().Substring(0, 10) + "..." : row[ "Title" ].ToString();
         builder.AppendFormat( "<a onclick='window.open(\"EditPlan.aspx?Action=Edit&PlanID={1}\",\"\",\"menu=no,tool=no,status=no,width=400,height=500\");'>{0}.{2}</a><br/>" , index, row[ "PlanID" ], title);
         index++;
         continue ;
       }
 
       cell.Controls.Add( new LiteralControl(builder.ToString()));
     }
     else
     {
       cell.Style[ "background-color" ] = "#E9E9E9" ;
     }
   }
 
 
   
}

控件编辑前台代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
< head runat = "server" >
   < title ></ title >
   < script type = "text/javascript" language = "javascript" src = "My97DatePicker/WdatePicker.js" >
   </ script >
   < script type = "text/javascript" language = "javascript" >
     function valiStartDate(source, clientside_arguments) {
       if (clientside_arguments.Value > new Date()) {
         clientside_arguments.IsValid = true;
       }
       else {
         clientside_arguments.IsValid = false;
       }
     }
   </ script >
</ head >
< body >
   < form id = "form1" runat = "server" >
   < h3 >日程信息</ h3 >
   < div >
     日程主题:< asp:TextBox runat = "server" ID = "txtTitle" Width = "270px"
       BorderColor = "#0066FF" BorderStyle = "Solid" BorderWidth = "1px" ></ asp:TextBox > < br />
     日程内容:< asp:TextBox runat = "server" ID = "txtContent" TextMode = "MultiLine" Height = "96px" ></ asp:TextBox > < br />
     起始日期:< asp:TextBox runat = "server" ID = "txtStartDate" CssClass = "Wdate" onfocus = "WdatePicker({minDate:'%y-%M-01',dateFmt:'yyyy-MM-dd HH:mm',maxDate:'%y-%M-%ld'})" /></ asp:TextBox >
     < br />
     结束日期:< asp:TextBox runat = "server" ID = "txtEndDate" CssClass = "Wdate" onfocus = "WdatePicker({minDate:'%y-%M-01',dateFmt:'yyyy-MM-dd HH:mm',maxDate:'%y-%M-%ld'})" /></ asp:TextBox >
     < asp:Panel runat = "server" ID = "pnlNew" >
       < asp:Button runat = "server" ID = "btnInsertPlan" Text = "添加"
         onclick = "btnInsertPlan_Click" />
                  
                  
       < input type = "reset" id = "btnReset" value = "重置" />
     </ asp:Panel >
     < asp:Panel runat = "server" ID = "pnlEdit" >
        < asp:Button runat = "server" ID = "btnUpdate" Text = "更新"
          onclick = "btnUpdate_Click1" />
                  
                  
       < asp:Button runat = "server" ID = "btnDelete" Text = "删除" onclick = "btnDelete_Click"
          />
       < asp:HiddenField runat = "server" ID = "hidPlanID" />
     </ asp:Panel >
     < asp:ValidationSummary ID = "ValidationSummary1" runat = "server"
       HeaderText = "提交对日程的修改中出现了以下问题:" />< br />
   </ div >
   </ form >
</ body >

控件编辑后台cs:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
 
public partial class EditPlan : System.Web.UI.Page
{
   public DateTime StartDate
   {
     get { return (DateTime) this .ViewState[ "StartDate" ]; }
     set { this .ViewState[ "StartDate" ] = value; }
   }
 
   public DateTime EndDate
   {
     get { return (DateTime) this .ViewState[ "EndDate" ]; }
     set { this .ViewState[ "EndDate" ] = value; }
   }
 
   
 
   protected void Page_Load( object sender, EventArgs e)
   {
     if ( this .Request.QueryString.Count != 2)
     {
       this .Response.End();
       return ;
     }
 
     if (! this .IsPostBack)
     {
       string action = this .Request.QueryString[ "Action" ];
 
 
       switch (action)
       {
         case "New" :
           this .StartDate = Convert.ToDateTime( this .Request.QueryString[ "StartDate" ]);
           this .EndDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, (DateTime.Now.AddMonths(1) - DateTime.Now).Days);
           this .pnlNew.Visible = true ;
           this .pnlEdit.Visible = false ;
           break ;
         case "Edit" :
           int planID = Convert.ToInt32( this .Request.QueryString[ "PlanID" ]);
           DataTable table = PlanOperator.SelectPlanById(planID);
           this .txtTitle.Text = table.Rows[0][ "Title" ].ToString();
           this .txtContent.Text = table.Rows[0][ "PlanContent" ].ToString();
           this .txtStartDate.Text = table.Rows[0][ "StartDate" ].ToString();
           this .txtEndDate.Text = table.Rows[0][ "EndDate" ].ToString();
           this .hidPlanID.Value = table.Rows[0][ "PlanID" ].ToString();
           this .pnlNew.Visible = false ;
           this .pnlEdit.Visible = true ;
           break ;
         default :
           break ;
       }
     }
   }
 
   protected void btnInsertPlan_Click( object sender, EventArgs e)
   {
     int i=PlanOperator.InsertPlan( this .txtTitle.Text, this .txtContent.Text, this .txtStartDate.Text, this .txtEndDate.Text);
     if (i == 1)
     {
       this .Response.Write( "<script type='text/javascript' language='javascript'>alert('添加日程成功!'); window.opener.location=window.opener.location+'?'+Math.random();window.opener='';window.close();</script>" );
       return ;
     }
     this .Response.Write( "<script type='text/javascript' language='javascript'>alert('添加日程失败!'); window.opener.location=window.opener.location+'?'+Math.random();window.opener='';window.close();</script>" );
     return ;
   }
 
   protected void btnUpdate_Click1( object sender, EventArgs e)
   {
     int i = PlanOperator.UpdatePlan(Convert.ToInt32( this .hidPlanID.Value), this .txtTitle.Text, this .txtContent.Text, this .txtStartDate.Text, this .txtEndDate.Text);
     if (i == 1)
     {
       this .Response.Write( "<script type='text/javascript' language='javascript'>alert('更新日程成功!'); window.opener.location=window.opener.location+'?'+Math.random();window.opener='';window.close();</script>" );
       return ;
     }
     this .Response.Write( "<script type='text/javascript' language='javascript'>alert('更新日程失败!'); window.opener.location=window.opener.location+'?'+Math.random();window.opener='';window.close();</script>" );
     return ;
   }
 
   protected void btnDelete_Click( object sender, EventArgs e)
   {
     int i = PlanOperator.DeletePlan(Convert.ToInt32( this .hidPlanID.Value));
     if (i == 1)
     {
       this .Response.Write( "<script type='text/javascript' language='javascript'>alert('删除日程成功!'); window.opener.location=window.opener.location+'?'+Math.random();window.opener='';window.close();</script>" );
       return ;
     }
     this .Response.Write( "<script type='text/javascript' language='javascript'>alert('删除日程失败!'); window.opener.location=window.opener.location+'?'+Math.random();window.opener='';window.close();</script>" );
     return ;
   }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值