Je n'ai jamais utilisé l'extension du calendrier Ajax, mais j'ai lu quelques-uns là-dessus est donc une photo:
Faire la logique pour limiter la les dates du côté serveur seraient probablement les plus faciles. Mais au meilleur de ma connaissance, CalendarExtender n'autorise pas les événements côté serveur. Mais un moyen de contourner cela est d'ajouter un bouton caché: asp et un champ caché à votre page et utilisez l'événement OnClientDateSelectionChanged
pour le premier CalendarExtender pour stocker la date et fake un clic sur le bouton appelant une méthode code-behind.
function dateClickEvent(sender, args)
{
document.getElementById('MyHiddenField').value = sender.get_selectedDate();
(document.getElementById('HiddenDateBtn')).click();
}
Le balisage pour le bouton et le champ étant quelque chose comme ceci:
<asp:HiddenField ID="MyHiddenField" runat="server" />
<asp:Button ID="HiddenDateBtn" runat="server" Text="Click" Visible="false"
style="display:none" OnClick="HiddenDateBtn_Click" />
Si vous utilisez alors un RangeValidator et un ValidatorCalloutExtender vous pouvez définir la plage pour la deuxième extension de date dans le code-behind .
//In your code-behind
protected void HiddenDateBtn_Click(object sender, EventArgs e)
{
string firstDate = MyHiddenField.Value;
SecondDateRangeValidator.MinimumValue = firstDate;
}
Et le code .aspx au validateur doit être quelque chose comme:
<asp:RangeValidator ID="SecondDateRangeValidator" runat="server"
ControlToValidate="SecondDateTextBox" ErrorMessage="RangeValidator"
Type="Date">
</asp:RangeValidator>
<ajaxToolkit:ValidatorCalloutExtender ID="SecondDateRangeValidator_ValidatorCalloutExtender"
runat="server" Enabled="True" TargetControlID="SecondDateRangeValidator">
</ajaxToolkit:ValidatorCalloutExtender>
Je n'ai pas essayé ce code moi-même :) Il suffit de mettre ensemble après quelques googler et de la lecture. J'espère que ça aide.