<asp:Content ID="Content3" ContentPlaceHolderID="ContentContent"  runat="server">
          <script type="text/javascript">
              var cal1;
              var cal2;
              function pageLoad() {
                  cal1 = $find("calendar1");
                  cal2 = $find("calendar2");
                      //modify cal ext delegate to support month selection and stop further date selection
                  modifyCalDelegates(cal1);
                  //modifyCalDelegates(cal2);
              }
              function modifyCalDelegates(cal) {
                  //we need to modify the original delegate of the month cell.
                  cal._cell$delegates = {
                      mouseover: Function.createDelegate(cal, cal._cell_onmouseover),
                      mouseout: Function.createDelegate(cal, cal._cell_onmouseout),
                      click: Function.createDelegate(cal, function(e) {
                          /// <summary>
                          /// Handles the click event of a cell
                          /// </summary>
                          /// <param name="e" type="Sys.UI.DomEvent">The arguments for the event</param>
                          e.stopPropagation();
                          e.preventDefault();
                          if (!cal._enabled) return;
                          var target = e.target;
                          var visibleDate = cal._getEffectiveVisibleDate();
                          Sys.UI.DomElement.removeCssClass(target.parentNode, "ajax__calendar_hover");
                          switch (target.mode) {
                              case "prev":
                              case "next":
                                  cal._switchMonth(target.date);
                                  break;
                              case "title":
                                  switch (cal._mode) {
                                      case "days": cal._switchMode("months"); break;
                                      case "months": cal._switchMode("years"); break;
                                  }
                                  break;
                              case "month":
                                  //if the mode is month, then stop switching to day mode.
                                  if (target.month == visibleDate.getMonth()) {
                                      //this._switchMode("days");
                                  } else {
                                      cal._visibleDate = target.date;
                                      //this._switchMode("days");
                                  }
                                  cal.set_selectedDate(target.date);
                                  cal._switchMonth(target.date);
                                  cal._blur.post(true);
                                  cal.raiseDateSelectionChanged();
                                  break;
                              case "year":
                                  if (target.date.getFullYear() == visibleDate.getFullYear()) {
                                      cal._switchMode("months");
                                  } else {
                                      cal._visibleDate = target.date;
                                      cal._switchMode("months");
                                  }
                                  break;
                              //                case "day":
                              //                    this.set_selectedDate(target.date);
                              //                    this._switchMonth(target.date);
                              //                    this._blur.post(true);
                              //                    this.raiseDateSelectionChanged();
                              //                    break;
                              case "today":
                                  cal.set_selectedDate(target.date);
                                  cal._switchMonth(target.date);
                                  cal._blur.post(true);
                                  cal.raiseDateSelectionChanged();
                                  break;
                          }
                      })
                  }
              }
              function onCalendarShown(sender, args) {
                  //set the default mode to month
                  sender._switchMode("months", true);
                  changeCellHandlers(cal1);
              }
              function changeCellHandlers(cal) {
                  if (cal._monthsBody) {
                      //remove the old handler of each month body.
                      for (var i = 0; i < cal._monthsBody.rows.length; i++) {
                          var row = cal._monthsBody.rows[i];
                          for (var j = 0; j < row.cells.length; j++) {
                              $common.removeHandlers(row.cells[j].firstChild, cal._cell$delegates);
                          }
                      }
                      //add the new handler of each month body.
                      for (var i = 0; i < cal._monthsBody.rows.length; i++) {
                          var row = cal._monthsBody.rows[i];
                          for (var j = 0; j < row.cells.length; j++) {
                              $addHandlers(row.cells[j].firstChild, cal._cell$delegates);
                          }
                      }
                  }
              }
              function onCalendarHidden(sender, args) {
                  if (sender.get_selectedDate()) {
                      if (cal1.get_selectedDate() && cal2.get_selectedDate() && cal1.get_selectedDate() > cal2.get_selectedDate()) {
                          alert('The "From" Date should smaller than the "To" Date, please reselect!');
                          sender.show();
                          return;
                      }
                      //get the final date
                      var finalDate = new Date(sender.get_selectedDate());
                      var selectedMonth = finalDate.getMonth();
                      finalDate.setDate(1);
                      if (sender == cal1) {
                          // set the calender2's default date 10th  day of the next month as per calender1
                          finalDate.setMonth(selectedMonth + 1);
                          finalDate.setDate(finalDate.getDate() + 9);
                          finalDate = new Date(finalDate);
                      }
                      //set the date to the TextBox
                      cal2.get_element().value = finalDate.format(cal2._format);
                  }
              }
          </script>
          <div>
              TP :
              <asp:TextBox ID="TextBox1"  runat="server" AutoCompleteType="Disabled"></asp:TextBox>
              <ajaxToolkit:CalendarExtender ID="CalendarExtender1"  BehaviorID="calendar1" runat="server"
                  Enabled="True" Format="yyyyMM" TargetControlID="TextBox1"  OnClientShown="onCalendarShown"
                  OnClientHidden="onCalendarHidden">
              </ajaxToolkit:CalendarExtender>
              SD :
              <asp:TextBox ID="TextBox2"  runat="server"></asp:TextBox>
              <ajaxToolkit:CalendarExtender ID="CalendarExtender2"  BehaviorID="calendar2" runat="server"
                  Enabled="True" Format="yyyy/MM/dd" TargetControlID="TextBox2"  >
              </ajaxToolkit:CalendarExtender>
          </div>
  </asp:Content>
  
No comments:
Post a Comment