Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @using System.Globalization
- @* Выбор даты
- Параметры:
- DpMinDate - минимальное значение
- DpMaxDate - максимальное значение
- NoDefaultValue - по умолчанию не будет введено значение
- ShowOn - 'focus' (открытие при фокусе), 'button' (открытие при клике на кнопке), 'both'
- KoDataBind - имя observable переменной (ko.bindingHandlers.datepicker - должен быть определён)
- KoChangeBind
- *@
- @{
- bool noDefaultValue = false;
- if (ViewData["NoDefaultValue"] != null)
- {
- noDefaultValue = (bool)ViewData["NoDefaultValue"];
- }
- }
- @Html.TextBox(""
- , noDefaultValue ? "" :
- DateTime.Parse((string)ViewData["DefaultValue"]).ToString("dd.MM.yyyy", CultureInfo.InvariantCulture)
- , new Dictionary<String, Object> { { "readonly", "true" } })
- @if (!string.IsNullOrEmpty(ViewData.ModelMetadata.PropertyName))
- {
- Html.ValidationMessage(ViewData.ModelMetadata.PropertyName);
- }
- <script type="text/javascript">
- @*HACK: disable для кнопки *@
- $(function () {
- var $input = $("#@ViewData.TemplateInfo.GetFullHtmlFieldId(string.Empty)");
- var dpMaxDate = '@((ViewData["DpMaxDate"] == null) ? "" : ViewData["DpMaxDate"].ToString())';
- var dpMinDate = '@((ViewData["DpMinDate"] == null) ? "" : ViewData["DpMinDate"].ToString())';
- var dpKoDataBind = '@((ViewData["DpDataBind"] == null) ? "" : ViewData["DpDataBind"].ToString())';
- var dpKoChangeBind = '@((ViewData["DpChangeBind"] == null) ? "" : ViewData["DpChangeBind"].ToString())';
- var dpParams = {};
- if (dpMaxDate != '') {
- dpParams.maxDate = $.datepicker.parseDate('dd.mm.yy', dpMaxDate); //dpMaxDate;
- } else {
- dpParams.maxDate = new Date();
- }
- if (dpMinDate != '') {
- dpParams.minDate = $.datepicker.parseDate('dd.mm.yy', dpMinDate); // dpMinDate;
- } else {
- dpParams.minDate = new Date();
- }
- var showOnParameter = '@((ViewData["ShowOn"] == null) ? "" : ViewData["ShowOn"].ToString())';
- if (showOnParameter == 'focus')
- dpParams.showOn = 'focus';
- else if (showOnParameter == 'button')
- dpParams.showOn = 'button';
- else if (showOnParameter == 'both')
- dpParams.showOn = 'both';
- if ($input.attr('disabled')) {
- $input.datepicker(dpParams).next('button').attr('disabled', 'disabled');
- } else {
- $input.datepicker(dpParams);
- }
- if (dpKoDataBind != '') {
- $input.attr('data-bind', dpKoDataBind);
- }
- if (dpKoChangeBind != '') {
- $input.attr('onchange', dpKoChangeBind);
- }
- $input.keydown(function (e) {
- if (e.keyCode === 8) {
- e.preventDefault();
- }
- //Убираем курсор из поля
- if (e.keyCode === 27) {
- this.blur();
- }
- });
- });
- </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement