Witam was, mam problem mianowicie z taką rzeczą. Posiadam na swojej stronie kalendarz do wyboru daty, i teraz możliwe daty do wyboru mają być zależne od wyboru jeszcze innej opcji.

Projekt jest w ASP.NET MVC z wykorzystaniem KnockoutJS

Oto zawartość widoku .cshtml w której tworze ten datepicker

<td class="date-pick-field col-xs-2" >
          <div class="input-group date" data-bind="datepicker: StartDate,
                        datepickerOptions: { startDate: viewModel.Spending().MinimunEndDate(), orientation: 'top left', autoclose: true, calendarWeeks: true }, uniqueName: true">
                        <input id="start_date_field" type="text" class="form-control" placeholder="mm/dd/yyyy" readonly="readonly" />
                        <span class="input-group-addon"><i class="fa fa-calendar fa-fw"></i></span>
           </div>
</td>

Oto zawartość pliku .js oraz funkcji która oblicza dostępne daty, ale robi to tylko raz z tego co wiem

self.MinimunEndDate = ko.computed(function () {

        var minimumDate = new Date();

        if (self.StartDate() != null) {
            minimumDate = self.StartDate();
        }

        if (self.StartDate() >= self.EndDate()) {
            self.EndDate(self.StartDate());
        }

        var endDateOPicker = $("#end_date_field").parent('.date');
        if (endDateOPicker.data('datepicker') != null) {
            endDateOPicker.datepicker("setStartDate", minimumDate);
        }

        if (self.SelectedCostCenter.UserIsAdmin) {
            minimumDate = null;
        }

        self.InternationalTravel(true);

        return minimumDate;
    });

Generalnie to te pole

self.SelectedCostCenter.UserIsAdmin

jest już dobrze zmieniane i przekazywane do skryptu, poniższa funkcja jest wywoływana gdy ta opcja od której powinna być data się zmienia:

function selectCostCenter(userCostCenter) {
    var counter = 0;
    var selectedCostCenter = viewModel.Spending().AvailableCostCenters()[counter];

    for (counter = 0; counter < viewModel.Spending().AvailableCostCenters().length; counter++) {
        if (viewModel.Spending().AvailableCostCenters()[counter].ID() == userCostCenter) {
            selectedCostCenter = viewModel.Spending().AvailableCostCenters()[counter];
        }
    }

    if (selectedCostCenter != null) {
        viewModel.Spending().SelectedCostCenter(selectedCostCenter);
    }
}

Teraz mój problem polega na tym, że do JS już poprawnie przekazuje sobie przez ViewMovel czy powinna być taka data możliwa czy nie, problem polega na tym, że nie wiem jak to zastosować ponownie do kontrolki, bo ta funkcja MinimunEndDate jest wykonywana z tego co rozumiem tylko raz przy ładowaniu strony

Z góry dziękuje wam za wszelką pomoc !