前台:
<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 接收网址中文参数乱码问题的解决方案