У меня есть список кортежей, объединяющих две части данных ... Я бы хотел привязать список к сетке данных. Для отображения он работает нормально ... но если я пытаюсь изменить запись, он говорит: «Привязка TwoWay или OneWayToSource не может работать с доступным только для чтения свойством 'Item1'» ... предположительно В .NET 4.0 кортежи неизменяемы. поэтому поле извлечения обновляется до 31 января на основе минимальных 2592000 секунд (30 дней), полученных через ajax. Но затем я передумал и решил заехать 31 декабря, так что это должно позволить мне изменить дату заезда на более раннюю и автоматически обновить дату выезда на 30 января.
Ниже мой код с закомментированным битом, который почти достигает того, что я хочу, за исключением того, что он не позволяет изменять более ранние даты, и я не уверен, как ограничить дату выезда минимальным периодом с момента регистрации. Данные, полученные через ajax, также имеют периоды доступности, поэтому календарь показывает доступные дни как доступные для выбора, а уже забронированные дни как недоступные для выбора. Эта часть работает нормально. Есть ли предложения для части, которая этого не делает?
$.ajax({
url: "/ping/availability.php",
data: "pid="+$('#pid').text(),
dataType: "json",
success: function(calendarEvents){
var dates = $("#checkin, #checkout").datepicker({
changeMonth: true,
numberOfMonths: 1,
/*onSelect: function(selectedDate) {
var option = this.id == "checkin" ? "minDate" : "maxDate";
var instance = $(this).data("datepicker");
var date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
dates.not(this).datepicker("option", option, date);
},*/
dateFormat: 'M d, yy',
beforeShowDay: function (date){
for (i = 0; i < calendarEvents.length; i++) {
var b,e,c;
b = Date.parse(calendarEvents[i]['from']);
e = Date.parse(calendarEvents[i]['to']);
c = Date.parse(date);
if((c <= e && c >= b)) {
return [true,"ui-state-notbooked"];
}
}
return [false, "ui-state-booked"];//disable all other days
}
});
}
});
Пример данных ajax, показывающих доступный период и минимальную продолжительность бронирования в секундах:
[{"from":"Tue, 01 Feb 2011 00:00:00 -0800","to":"Fri, 30 Sep 2011 00:00:00 -0700","min":7776000}]