我整理了下思路:
我就是要实现,
页面有两个按钮,分别是“上一月”和“下一月”,然后点击按钮 读取对应月有几个周,这几个周分别是几号到几号,有几个周就显示几个table.然后在对应的table里提取这个月这个周的数据。每个月从周一开始算到周日,如果跨月的话就得把上个月跟下个月的也算上。可以在后台直接response.write table 和table 的内容 ,为了记录当前用户点击到哪年哪月了,可以把用户点击的当年当月记录在viewstate里!

解决方案 »

  1.   

    就类似于一个简单的canlender控件。
      

  2.   


    <!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 + "周:&nbsp;");
                    for (int j = 0; j < 7; j++)
                    {
                        Response.Write(dt.AddDays(j).ToString("yyyy-MM-dd") + "&nbsp;&nbsp;&nbsp;");
                    }
                    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();
            }
      

  3.   

    建议看看 My97DatePicker ,http://www.my97.net/dp/index.asp,这个应该可以实现你要的功能