Advertisement
Guest User

Untitled

a guest
Nov 7th, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
jQuery 3.19 KB | None | 0 0
  1. @using System.Globalization
  2.  
  3. @* Выбор даты
  4.     Параметры:
  5.         DpMinDate - минимальное значение
  6.         DpMaxDate - максимальное значение
  7.         NoDefaultValue - по умолчанию не будет введено значение
  8.         ShowOn - 'focus' (открытие при фокусе), 'button' (открытие при клике на кнопке), 'both'
  9.         KoDataBind - имя observable переменной (ko.bindingHandlers.datepicker - должен быть определён)
  10.         KoChangeBind
  11. *@
  12. @{
  13.     bool noDefaultValue = false;
  14.     if (ViewData["NoDefaultValue"] != null)
  15.     {
  16.         noDefaultValue = (bool)ViewData["NoDefaultValue"];
  17.     }
  18. }
  19.  
  20. @Html.TextBox(""
  21.             , noDefaultValue ? "" :
  22.             DateTime.Parse((string)ViewData["DefaultValue"]).ToString("dd.MM.yyyy", CultureInfo.InvariantCulture)
  23.         , new Dictionary<String, Object> { { "readonly", "true" } })
  24. @if (!string.IsNullOrEmpty(ViewData.ModelMetadata.PropertyName))
  25. {
  26.     Html.ValidationMessage(ViewData.ModelMetadata.PropertyName);
  27. }
  28. <script type="text/javascript">  
  29.  
  30.     @*HACK: disable для кнопки *@
  31.     $(function () {
  32.         var $input = $("#@ViewData.TemplateInfo.GetFullHtmlFieldId(string.Empty)");
  33.         var dpMaxDate = '@((ViewData["DpMaxDate"] == null) ? "" : ViewData["DpMaxDate"].ToString())';
  34.         var dpMinDate = '@((ViewData["DpMinDate"] == null) ? "" : ViewData["DpMinDate"].ToString())';
  35.         var dpKoDataBind = '@((ViewData["DpDataBind"] == null) ? "" : ViewData["DpDataBind"].ToString())';
  36.         var dpKoChangeBind = '@((ViewData["DpChangeBind"] == null) ? "" : ViewData["DpChangeBind"].ToString())';
  37.         var dpParams = {};
  38.  
  39.         if (dpMaxDate != '') {
  40.             dpParams.maxDate = $.datepicker.parseDate('dd.mm.yy', dpMaxDate); //dpMaxDate;
  41.         } else {
  42.             dpParams.maxDate = new Date();
  43.         }
  44.  
  45.         if (dpMinDate != '') {
  46.             dpParams.minDate = $.datepicker.parseDate('dd.mm.yy', dpMinDate); // dpMinDate;
  47.         } else {
  48.             dpParams.minDate = new Date();
  49.         }
  50.  
  51.         var showOnParameter = '@((ViewData["ShowOn"] == null) ? "" : ViewData["ShowOn"].ToString())';
  52.         if (showOnParameter == 'focus')
  53.             dpParams.showOn = 'focus';
  54.         else if (showOnParameter == 'button')
  55.             dpParams.showOn = 'button';
  56.         else if (showOnParameter == 'both')
  57.             dpParams.showOn = 'both';
  58.  
  59.         if ($input.attr('disabled')) {
  60.             $input.datepicker(dpParams).next('button').attr('disabled', 'disabled');            
  61.         } else {
  62.             $input.datepicker(dpParams);
  63.         }        
  64.  
  65.          if (dpKoDataBind != '') {
  66.             $input.attr('data-bind', dpKoDataBind);
  67.         }
  68.  
  69.         if (dpKoChangeBind != '') {
  70.             $input.attr('onchange', dpKoChangeBind);
  71.         }
  72.  
  73.         $input.keydown(function (e) {
  74.             if (e.keyCode === 8) {
  75.                 e.preventDefault();
  76.             }
  77.             //Убираем курсор из поля
  78.             if (e.keyCode === 27) {
  79.                 this.blur();
  80.             }
  81.         });
  82.     });
  83. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement