欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-18 15:21:46
my97datepicker日期控件是一个非常好用的日期控件,功能非常优秀的日期控件. 对实现页面刷新完善的很好,用日期控件时可以有比较好的享受,这次的oa日期记事功能也...

my97datepicker日期控件是一个非常好用的日期控件,功能非常优秀的日期控件.
对实现页面刷新完善的很好,用日期控件时可以有比较好的享受,这次的oa日期记事功能也得益于此控件,具体效果图如下:

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

部分代码:
default页布局一个calendar日期控件

 <div>
    <asp:calendar id="calendar1" runat="server" width="100%" 
      showgridlines="true" ondayrender="calendar1_dayrender" >
    </asp:calendar>
  </div>

default页cs代码:

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"; 
    }
  }


  
}

控件编辑前台代码:

<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:

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;
  }
}

以上就是关于my97datepicker日期控件实现oa日期记事功能的全部内容,希望大家会喜欢。

上一篇:

下一篇: