
前台:
<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"] = " ";
                    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】
- 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.
- 上一篇:html 简单网页mp3播放器
- 下一篇: JS 接收网址中文参数乱码问题的解决方案