首页 .NET/Web ASP.NET 考勤记录月视图,以日历形式输入效果,日历的制作

ASP.NET 考勤记录月视图,以日历形式输入效果,日历的制作

作者:胡同里的砖头 围观群众:1141 更新于:2013-12-19

 

前台:

<table cellpadding="0" cellspacing="0" class="AddTable">
   
    <tr>
        <td  class="col1">员工姓名</td>
        <td class="col2"><asp:Label ID="Label2" runat="server" /></td>
    </tr>
    <tr>
        <td class="col1">本月总天数</td>
        <td class="col2"><asp:Label ID="Label1" runat="server" />天</td>
    </tr>
    <tr>
        <td  class="col1">已签到天数</td>
        <td class="col2"><asp:Label ID="Label4" runat="server" />天</td>
    </tr>
    <tr>
        <td  class="col1">签到</td>
        <td class="col2">
            今天日期:<%=DateTime.Now.ToShortDateString() %>
        </td>
    </tr>
    <tr>
        <td  class="col1" colspan="2">
            <table cellpadding="0" cellspacing="0" width="700px" id="Calendar">
                <tr class="weektr">
                    <td>周日</td>
                    <td>周一</td>
                    <td>周二</td>
                    <td>周三</td>
                    <td>周四</td>
                    <td>周五</td>
                    <td>周六</td>
                </tr>
            </table>
            <div style="width:703px">
            <asp:Repeater ID="Repeater1" runat="server">
            <ItemTemplate>
                <div id="Div1" class="day" runat="server">
                    <%--<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("line") %>' />--%>
                    <span id="Span1" runat="server" visible='<%# Convert.ToBoolean(Eval("visible")) %>'><asp:Label ID="Label3" runat="server" Text='<%# Eval("day") %>' />号</span><br />
                    <%# Eval("line") %>
                </div>
            </ItemTemplate>
            </asp:Repeater>
            </div>
        </td>
    </tr>
</table>

 

css如下:

.AddTable
{ border-collapse:collapse; width:720px; margin:0px auto; color:#3f6445; margin-top:20px; margin-bottom:20px}

.AddTable tr td
{ border:solid 1px #80ab73; text-align:left; padding-left:5px}

.col1
{ width:100px; text-align:right}

.col2
{ width:600px; text-align:left}

.day
{ width:94px; text-align:center; border:solid 1px #c0c0c0; height:50px; margin:2px; float:left}

.day span
{ font-weight:bold}

.weektr td
{ height:20px; text-align:center; background:green; color:White;}

后台代码如下:

Teacher t;
    protected void Page_Load(object sender, EventArgs e)
    {
        int id = Convert.ToInt32(Request.QueryString["id"]);
        t = TeacherManager.GetByID(id); ;//获取用户信息
        if (!IsPostBack)
            Bind();
    }


    string[] week = { "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" };//日期
    protected void Bind()
    {
        int year = DateTime.Now.Year;
        int month = DateTime.Now.Month;
        Label1.Text = DateTime.DaysInMonth(year, month).ToString();//本月总天数

        Label2.Text = t.Name;
        Label4.Text = KaoQingManager.GetCountByTeacher(DateTime.Now, t.Id).ToString();
        int days = DateTime.DaysInMonth(year, month);//获取需要填写考勤的总天数

        DataTable daysdt = new DataTable();//实例一个表格
        string[] col = { "day", "visible", "line" };
        for (int i = 0; i < col.Length; i++)
        {
            DataColumn dc = new DataColumn();
            dc.ColumnName = col[i];
            daysdt.Columns.Add(dc);
        }

        DateTime start = Convert.ToDateTime(year.ToString() + "-" + month.ToString() + "-1");//月份第一天
        for (int i = 0; i < week.Length; i++)//1号之前的置空
        {
            if (start.DayOfWeek.ToString().ToLower() == week[i] && i != 0)
            {
                for (int j = 0; j < i; j++)
                {
                    DataRow dr = daysdt.NewRow();
                    dr["day"] = "&nbsp;";
                    dr["visible"] = "false";
                    dr["line"] = "";
                    daysdt.Rows.Add(dr);
                }
                break;
            }
        }

        for (int i = 0; i < days; i++)
        {
            DataRow dr = daysdt.NewRow();
            dr["day"] = i + 1;
            dr["visible"] = "true";
            dr["line"] = KaoQingManager.GetKaoQing(Convert.ToDateTime(string.Format("{0}-{1}-{2}", year, month, i + 1)), t.Id) == 0 ? "未签到" : "<span style='color:red'>已签到</span>";
            daysdt.Rows.Add(dr);
        }
        Repeater1.DataSource = daysdt;
        Repeater1.DataBind();
    }

小胡原创

  • 本文标题: ASP.NET 考勤记录月视图,以日历形式输入效果,日历的制作
  • 文章分类:【.NET/Web】
  • 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.
留言评论
站点声明:
1、本站【胡同里的砖头】个人博客,借鉴网上一些博客模板,取其各优点模块自行拼装开发,本博客开发纯属个人爱好。
2、所有笔记提供给广大用户交流使用,可转载,可复制,纯个人开发所遇问题锦集记录使用
Copyright © huzlblog.com All Rights Reserved. 备案号:苏ICP备2021056683号-8