Jak wyłączyć wcześniejszych dat podczas korzystania z ajaxToolkit CalendarExtenderWyłącz poprzednia Daty w ajaxToolkit CalendarExtender
Odpowiedz
Jedną z opcji jest użycie RangeValidator na polu tekstowym calenderextender jest związany. Tj. Jeśli masz ID celu przedłużenia kalendarza ustawionego na tb1, dodaj zmienną rangeValidator do oznaczenia, gdy zawartość tb1 ma miejsce przed dzisiejszym dniem.
Inną opcją jest za pomocą JavaScript i tutaj jest dobrym przykładem: http://www.dotnetcurry.com/ShowArticle.aspx?ID=149 TIP 6.
poniższy link może pomóc: Disable dates in CalendarExtender
Oto moje pełne rozwiązanie problemu ograniczenia kalendarza data: Co Podoba mi się to rozwiązanie polegające na ustawieniu wartości minimalnej i maksymalnej wartości zmiennej RangeValidator i nie trzeba modyfikować żadnego javascriptu. Nigdy nie znalazłem pełnego rozwiązania, które nie wymagało rekompilacji pliku AjaxControlToolkit.dll. Dzięki http://www.karpach.com/ajaxtoolkit-calendar-extender-tweaks.htm za udzielenie mi pomysłu na zastąpienie kluczowych metod w pliku calendar.js bez konieczności ponownego kompilowania pliku AjaxControlToolkit.dll. Ponadto mam błędy "AjaxControlToolkit jest niezdefiniowane" javascript, więc zmieniłem je na Sys.Extended.UI. i działa to dla mnie przy korzystaniu z wersji 4.0 zestawu narzędzi.
<%--//ADD THIS NEW STYLE TO STYLESHEET TO GRAY OUT DATES THAT AREN'T SELECTABLE--%>
<style type="text/css">
.ajax__calendar_inactive {color:#dddddd;}
</style>
Albo w Page_Load lub Init lub gdziekolwiek, ustaw wartości minimalne i maksymalne dla danego zakresu walidator:
<script runat="server">
protected override void OnLoad(EventArgs e)
{
//set the validator min and max values
this.valDateMustBeWithinMinMaxRange.MinimumValue = DateTime.Today.Date.ToShortDateString();
this.valDateMustBeWithinMinMaxRange.MaximumValue = DateTime.MaxValue.Date.ToShortDateString();
base.OnLoad(e);
}
</script>
Dodaj ten skrypt gdzieś na stronie:
<script type="text/javascript">
<%--// ADD DATE RANGE FEATURE JAVASCRIPT TO OVERRIDE CALENDAR.JS--%>
var minDate = new Date('<%= valDateMustBeWithinMinMaxRange.MinimumValue %>');
var maxDate = new Date('<%= valDateMustBeWithinMinMaxRange.MaximumValue %>');
Sys.Extended.UI.CalendarBehavior.prototype._button_onblur_original = Sys.Extended.UI.CalendarBehavior.prototype._button_onblur;
//override the blur event so calendar doesn't close
Sys.Extended.UI.CalendarBehavior.prototype._button_onblur = function (e) {
if (!this._selectedDateChanging) {
this._button_onblur_original(e);
}
}
Sys.Extended.UI.CalendarBehavior.prototype._cell_onclick_original = Sys.Extended.UI.CalendarBehavior.prototype._cell_onclick;
//override the click event
Sys.Extended.UI.CalendarBehavior.prototype._cell_onclick = function (e) {
var selectedDate = e.target.date;
if (selectedDate < minDate || selectedDate > maxDate) {
//alert('Do nothing. You can\'t choose that date.');
this._selectedDateChanging = false;
return;
}
this._cell_onclick_original(e);
}
Sys.Extended.UI.CalendarBehavior.prototype._getCssClass_original = Sys.Extended.UI.CalendarBehavior.prototype._getCssClass;
Sys.Extended.UI.CalendarBehavior.prototype._getCssClass = function (date, part) {
var selectedDate = date;
if (selectedDate < minDate || selectedDate > maxDate) {
return "ajax__calendar_inactive";
}
this._getCssClass_original(date, part);
}
</script>
Dodaj ten pole tekstowe do strony asp.net z CalendarExtenter i RangeValidator:
<asp:TextBox ID="textBoxDate" runat="server" />
<ajaxToolkit:CalendarExtender ID="calendarExtender" runat="server" TargetControlID="textBoxDate" />
<asp:RangeValidator ID="valDateMustBeWithinMinMaxRange" runat="server" ControlToValidate="textBoxDate"
ErrorMessage="The date you chose is not in accepted range" Type="Date" />
<br />
<asp:Button ID="Button1" runat="server" Text="Button" />
Korzystanie z Ajax Toolkit kalendarz Extender w znacznikach html:
<asp:TextBox ID="txtDate" runat="server" CssClass="contentfield" Height="16px" MaxLength="12" width="80px" Wrap="False"></asp:TextBox>
<asp:CalendarExtender ID="CalendarExtender3" runat="server" Enabled="true" StartDate="<%# DateTime.Now %>" EndDate="<%# DateTime.Now.AddDays(1) %>" Format="dd MMM yyyy" PopupButtonID="imgDatePicker" TargetControlID="txtDate">
</asp:CalendarExtender>
<asp:ImageButton ID="imgDatePicker" runat="Server" AlternateText="Click to show calendar" Height="16px" ImageAlign="Middle" ImageUrl="~/images/Calendar_scheduleHS.png" Width="16px" />
Powyżej widać, że kalendarz pozwala tylko jeden wybór pomiędzy dziś lub jutro przez ustawienie
startDate =”<% # DateTime.Now%>”
i
DataZakończenia = "<% # DateTime.Now.AddDays (1)%>"
ten może być również wykonane w backend przy użyciu CalendarExtender1.StartDate = DateTime.Now;
lub CalendarExtender1.EndDate = DateTime.Now.AddDays(1);
Wystarczy dodać atrybut StartDate = "<% # DateTime.Now%>" w tobie ajaxtoolkit calendarextender control
- 1. Nieznany znacznik serwera "ajaxToolkit: CalendarExtender".
- 2. Problem z pozycjonowaniem CalendarExtender
- 3. Wyłącz przyszłe daty w jQuery UI Datepicker
- 4. Format daty w RangeValidator
- 5. AngularUI Datepicker wyłącz daty poza zakresem
- 6. Elasticsearch - poprzednia/następna funkcjonalność
- 7. PHP Data Funkcja Siedem dni poprzednia
- 8. WebView następna/poprzednia strona przejścia
- 9. Selektor wyboru zakresu dat na telefon komórkowy poprzednia data podczas zmiany daty
- 10. uwaga: poprzednia ukryta deklaracja "point_forward" była tutaj
- 11. iOS 10 MapKit poprzednia warstwa Zoom issue
- 12. Wyłącz/wyłącz odziedziczone przejścia CSS3
- 13. Szyny Poprzednia niedziela w odniesieniu do dowolnego DataTime
- 14. Poprzednia i następne przyciski dla zbieraczy w Sencha Touch 2
- 15. Wyłącz konwersję wartości PyYAML
- 16. Wyłącz dzwonek w MacVim
- 17. Wyłącz PrettyPhoto w kodzie
- 18. Wyłącz historia w Linuksie
- 19. Wyłącz sesję w Laravel
- 20. Wyłącz publikowanie w MSBuild
- 21. Wyłącz autouzupełnianie w PhpStorm
- 22. Wyłącz sortowanie w jqGrid
- 23. Wyłącz skrót w argparse
- 24. Jak zmienić format daty w wyboru daty
- 25. Wyłącz UISearchBar
- 26. Wyłącz przycisk
- 27. Android: wyłącz podświetlanie w GridView
- 28. Wyłącz edycję użytkownika w JTable
- 29. Wyłącz domyślny konstruktor w Rust?
- 30. Wyłącz projektanta w Visual Studio?
Dobra realizacja. –