Làm thế nào để vô hiệu hóa ngày trước khi sử dụng trong ajaxToolkit CalendarExtenderDisable Ngày trước trong ajaxToolkit CalendarExtender
Trả lời
Một lựa chọn là sử dụng một RangeValidator trên textbox các calenderextender là ràng buộc để. Tức là nếu bạn có TargetID của bộ mở rộng lịch được đặt thành tb1, hãy thêm một dải ôValidator để gắn cờ khi nội dung của tb1 trước ngày hôm nay.
Một lựa chọn khác là sử dụng javascript và đây là một ví dụ điển hình: http://www.dotnetcurry.com/ShowArticle.aspx?ID=149 TIP 6.
liên kết sau đây có thể giúp bạn: Disable dates in CalendarExtender
Đây là giải pháp đầy đủ của tôi đến ngày vấn đề lịch hạn chế: Điều gì Tôi thích về giải pháp này là bạn đặt MinimumValue và MaximumValue của một RangeValidator và bạn không phải sửa đổi bất kỳ javascript. Tôi không bao giờ tìm thấy một giải pháp đầy đủ mà không yêu cầu biên dịch lại AjaxControlToolkit.dll. Cảm ơn http://www.karpach.com/ajaxtoolkit-calendar-extender-tweaks.htm vì đã cho tôi ý tưởng về cách ghi đè các phương thức chính trong tệp calendar.js mà không phải biên dịch lại AjaxControlToolkit.dll. Ngoài ra, tôi đã nhận "AjaxControlToolkit là không xác định" javascript lỗi, vì vậy tôi đã thay đổi những người Sys.Extended.UI. và nó hoạt động cho tôi khi sử dụng phiên bản 4.0 của bộ công cụ.
<%--//ADD THIS NEW STYLE TO STYLESHEET TO GRAY OUT DATES THAT AREN'T SELECTABLE--%>
<style type="text/css">
.ajax__calendar_inactive {color:#dddddd;}
</style>
Hoặc trong Page_Load hoặc Init hoặc bất cứ nơi nào, thiết lập min và giá trị tối đa cho phạm vi validator của bạn:
<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>
Thêm javascript này ở đâu đó trong trang của bạn:
<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>
Thêm này hộp văn bản tới trang asp.net của bạn với CalendarExtenter và 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" />
Sử dụng Ajax toolkit Lịch Extender trong đánh dấu 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" />
Ở trên bạn sẽ thấy rằng lịch chỉ cho phép một để lựa chọn giữa ngày hôm nay hoặc ngày mai bằng cách thiết lập
StartDate =" <% # DateTime.Now%>"
và
EndDate = "<% # DateTime.Now.AddDays (1)%>"
này cũng có thể được thực hiện trong backend sử dụng CalendarExtender1.StartDate = DateTime.Now;
hoặc CalendarExtender1.EndDate = DateTime.Now.AddDays(1);
Chỉ cần thêm một thuộc tính StartDate = "<% # DateTime.Now%>" trong bạn điều khiển calendarextender ajaxtoolkit
- 1. Thẻ máy chủ không xác định 'ajaxToolkit: CalendarExtender'.
- 2. Cách bản địa hóa văn bản Hôm nay trong ajaxToolkit: CalendarExtender?
- 3. ngày cụ thể Disable trong tuần trên jQuery UI datepicker
- 4. CalendarExtender Positioning Problem
- 5. Disable lô trong Matlab
- 6. ASP.NET Ajax CalendarExtender sẽ không cập nhật giá trị SelectedDate
- 7. Disable link_to thẻ trong Rails3 +
- 8. Disable lịch sử trong Linux
- 9. Ngày 180 ngày trước là gì?
- 10. Trước ngày Thứ Hai & Trước ngày chủ nhật dựa trên ngày nay hẹn hò với
- 11. ngày tháng trước năm 1970
- 12. Disable Đăng nhập Prompts trong mod_auth_sspi_1.0.4-2.2.2
- 13. Định dạng ngày trong RangeValidator
- 14. Disable XAML UI designer
- 15. Komodo Edit disable autocomple
- 16. HTML Anchor, Disable Style
- 17. Android Enable và Disable GPS
- 18. delphi xe disable RTTI
- 19. Disable NHibernate đăng
- 20. Trình giữ ngày tháng jQuery để ngăn ngày trước
- 21. Disable Positional Parameter Binding trong Powershell
- 22. Disable neo trong Chrome/WebKit/Safari
- 23. programatically disable tìm nạp trước phần cứng trên hệ thống AMD
- 24. ngày get Android trước 7 ngày (một tuần)
- 25. javascript ngày ngày cuối cùng của tháng trước
- 26. Cách nhận 30 ngày trước ngày hiện tại?
- 27. Xác thực nếu ngày trước ngày hiện tại
- 28. Nhận phạm vi ngày trong tuần trước cho một ngày trong Java
- 29. gps trở về trước một ngày?
- 30. phím tắt Disable Internet Explorer
Triển khai tốt. –