Динамическая настройка DatePicker maxDate & minDate

У меня есть пользовательский элемент управления ascx с текстовым полем и jquery datepicker в нем. Пользовательский элемент управления имеет два определенных свойства, _futuredate и _pastdate, которые задаются в aspx страницы с помощью элемента управления.

Я хочу использовать эти логические свойства, чтобы установить разум и максимальное значение средства выбора даты, но я испытываю большие трудности и пришел сюда за помощью в качестве крайней меры, потратив два дня на неудачу, чтобы не отсортировать его сам, используя мои ограниченные знания jQuery.

То, что я пытаюсь сделать, это установить значения скрытых полей для дат на основе свойств в процедуре page_init, а затем установить значения mindate и maxdate на основе этих значений скрытых полей. Проблема в том, что я не думаю, что функция jQuery собирает значения (я знаю это, поскольку добавила предупреждение в свою функцию для отображения даты).

Кто-нибудь может помочь мне здесь??

 <%@ Control Language="VB" AutoEventWireup="false" 
    Inherits="HarvestWebSite.HarvestDateUserControl" Explicit="true" Strict="true" 
    Codebehind="HarvestDateUserControl.ascx.vb" %>
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %>

<script type="text/javascript" language="javascript">
            $(function() {

                  try  {
                        document.execCommand("BackgroundImageCache", false, true); 
                       } 
                       catch(exception) 
                       {     
                        // other browsers do nothing 
                       }

                  var prm = Sys.WebForms.PageRequestManager.getInstance();
                  prm.add_pageLoaded(AttachDatePickers);
                  });

            function AttachDatePickers() {
                $( '.datepicker' ).datepicker({
                    beforeShow: customDate,
                    showOn: 'both', 
                    buttonImage: clientSideDatePickerImage,
                    buttonImageOnly: true,
                    onSelect: function (dateText, inst) {    $('#HiddenField1').val(dateText) },
                    dateFormat:  'dd-M-yy'
                 });


             }

            function customDate() {

            var defaultMin = new Date();
            var defaultMax = new Date();

            var Min = defaultMin;
            var Max = defaultMax;

// make valid date from hiddenfied value format is MM/dd/yyyy
            dateMin = $("#HiddenField2").val();
            dateMin = new Date(dateMin);

            dateMax = $("#HiddenField1").val();
            dateMax = new Date(dateMax);


            if (dateMin && dateMax) {
                Min = new Date(dateMin.getFullYear(), dateMin.getMonth(), dateMin.getDate());
                Max = new Date(dateMax.getFullYear(), dateMax.getMonth(), dateMax.getDate());
            }

            alert(Max);

            return {
                minDate: Min,
                maxDate: Max

                };
            }

    </script>


<asp:TextBox ID="tbDateBox" runat="server" Width="80px" Enabled="false" CssClass="datepicker"></asp:TextBox>


<noscript>
<asp:ImageButton ID="ibDateBox" runat="server" ImageUrl="~/images/datebox.png" 
CssClass="dateboxbutton" Width="16px" Height="16px" />
</noscript>

<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:HiddenField ID="HiddenField2" runat="server" />

Код позади:

Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init

    If _futuredate = True Then
        HiddenField1.Value = DateAdd(DateInterval.WeekOfYear, -2, Today)
    Else
        HiddenField1.Value = "01/01/2200"
    End If

    If _pastdate = True Then
        HiddenField2.Value = Today
    Else
        HiddenField2.Value = "01/01/1900"
    End If

End Sub

0 ответов

Другие вопросы по тегам