WebUserControl.ascx 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <!-- <Snippet8> -->
  2. <%@ Control Language="C#" ClassName="WebUserControl" %>
  3. <script runat="server">
  4. public event EventHandler InnerClick
  5. {
  6. add
  7. {
  8. DateSelectedButton.Click += value;
  9. }
  10. remove
  11. {
  12. DateSelectedButton.Click -= value;
  13. }
  14. }
  15. public int Range
  16. {
  17. get {
  18. if (ViewState["Range"] != null)
  19. return (Int32)ViewState["Range"];
  20. else
  21. return -1;
  22. }
  23. set { ViewState["Range"] = value; }
  24. }
  25. protected void Page_Load(object sender, EventArgs e)
  26. {
  27. if (ViewState["endDate"] != null)
  28. {
  29. SelectDates(DateTime.Today, (DateTime)ViewState["endDate"]);
  30. Label2.Text = Calendar1.SelectedDates[Calendar1.SelectedDates.Count-1].ToShortDateString();
  31. }
  32. else
  33. {
  34. Calendar1.SelectedDate = DateTime.Today;
  35. }
  36. Label1.Text = DateTime.Today.ToShortDateString();
  37. }
  38. protected void Calendar1_SelectionChanged(object sender, EventArgs e)
  39. {
  40. DateTime startDate = DateTime.Today;
  41. DateTime endDate = Calendar1.SelectedDate;
  42. if (endDate < startDate)
  43. {
  44. Calendar1.SelectedDate = startDate;
  45. Label2.Text = "Select an end date greater than today.";
  46. return;
  47. }
  48. SelectDates(startDate, endDate);
  49. ViewState["endDate"] = endDate;
  50. }
  51. private void SelectDates(DateTime startDate, DateTime endDate)
  52. {
  53. Label2.Text = endDate.ToShortDateString();
  54. SelectedDatesCollection selectedDates = Calendar1.SelectedDates;
  55. selectedDates.Clear();
  56. DateTime dt = startDate;
  57. do
  58. {
  59. selectedDates.Add(dt);
  60. dt = dt.Add(new TimeSpan(1, 0, 0, 0));
  61. } while (dt <= endDate);
  62. this.Range = Calendar1.SelectedDates.Count;
  63. }
  64. protected void Calendar1_VisibleMonthChanged(object sender, MonthChangedEventArgs e)
  65. {
  66. if (ViewState["endDate"] != null)
  67. SelectDates(DateTime.Today, (DateTime)ViewState["endDate"]);
  68. }
  69. </script>
  70. <asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="Calendar1_SelectionChanged"
  71. OnVisibleMonthChanged="Calendar1_VisibleMonthChanged"></asp:Calendar>
  72. Start date:
  73. <asp:Label ID="Label1" runat="server" />
  74. <br />
  75. End date:
  76. <asp:Label ID="Label2" runat="server">...select...</asp:Label>
  77. <br />
  78. <asp:Button ID="DateSelectedButton" runat="server" Text="Done" />
  79. <br />
  80. <!-- </Snippet8> -->