我整理了下思路:
我就是要实现,
页面有两个按钮,分别是“上一月”和“下一月”,然后点击按钮 读取对应月有几个周,这几个周分别是几号到几号,有几个周就显示几个table.然后在对应的table里提取这个月这个周的数据。每个月从周一开始算到周日,如果跨月的话就得把上个月跟下个月的也算上。可以在后台直接response.write table 和table 的内容 ,为了记录当前用户点击到哪年哪月了,可以把用户点击的当年当月记录在viewstate里!
我就是要实现,
页面有两个按钮,分别是“上一月”和“下一月”,然后点击按钮 读取对应月有几个周,这几个周分别是几号到几号,有几个周就显示几个table.然后在对应的table里提取这个月这个周的数据。每个月从周一开始算到周日,如果跨月的话就得把上个月跟下个月的也算上。可以在后台直接response.write table 和table 的内容 ,为了记录当前用户点击到哪年哪月了,可以把用户点击的当年当月记录在viewstate里!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
当前年:<asp:Label ID="lbYear" runat="server" Text=""></asp:Label>
当前月:<asp:Label ID="lbMonth" runat="server" Text=""></asp:Label>
<asp:Button ID="PreMonth" runat="server" Text="上一月" OnClick="Button_Click" />
<asp:Button ID="NextMonth" runat="server" Text="下一月" OnClick="Button_Click" />
</div>
</form>
</body>
</html> int Year
{
get
{
object o = ViewState["Year"];
return o == null ? DateTime.Now.Year : Convert.ToInt32(o);
}
set
{
ViewState["Year"] = value;
}
} int Month
{
get
{
object o = ViewState["Month"];
return o == null ? DateTime.Now.Month : Convert.ToInt32(o);
}
set
{
ViewState["Month"] = value;
}
} protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetWeeks();
}
} private void GetWeeks()
{
lbYear.Text = Year.ToString();
lbMonth.Text = Month.ToString(); DateTime dtStart = new DateTime(Year, Month, 1);
while (dtStart.DayOfWeek != DayOfWeek.Monday)
dtStart = dtStart.AddDays(-1);
DateTime dtEnd = new DateTime(Year, Month, DateTime.DaysInMonth(Year, Month));
while (dtEnd.DayOfWeek != DayOfWeek.Sunday)
dtEnd = dtEnd.AddDays(1);
int i = 1;
for (DateTime dt = dtStart; dt <= dtEnd; dt = dt.AddDays(7))
{
Response.Write("第" + i + "周: ");
for (int j = 0; j < 7; j++)
{
Response.Write(dt.AddDays(j).ToString("yyyy-MM-dd") + " ");
}
Response.Write("<br />");
i++;
}
} protected void Button_Click(object sender, EventArgs e)
{
DateTime dt = new DateTime(Year, Month, 1).AddMonths(sender == PreMonth ? -1 : 1);
Year = dt.Year;
Month = dt.Month;
GetWeeks();
}