2010-05-11 7 views
4

Existe-t-il un moyen de configurer l'extension de calendrier de sorte que le calendrier affiche lorsque la zone de texte reçoit le focus ET lorsque l'élément avec le "PopupButtonID" est cliqué? Avec mes paramètres actuels, il semble que ce soit l'un ou l'autre.Affichage de l'extension de calendrier AJAX Asp.net Deux façons

+0

Je vous suggère tout simplement en utilisant jQuery. Il a un plugin 'DatePicker' bien supérieur. –

Répondre

6

C'est un peu moche de le faire, mais vous pouvez le faire si vous êtes prêt à utiliser deux extensions.

<asp:TextBox runat="server" ID="DateTextBox" /> 
<asp:ImageButton runat="server" ID="CalendarImageButton" ImageUrl="~/date_16x16.gif" /> 
<ajaxtoolkit:CalendarExtender runat="server" id="Extender1" TargetControlID="DateTextBox"/> 
<ajaxtoolkit:CalendarExtender runat="server" ID="Extender2" TargetControlID="DateTextBox" PopupButtonID="CalendarImageButton" /> 

De cette façon, le calendrier apparaîtra si vous vous concentrez sur la zone de texte ou cliquez sur le bouton image.

+0

Peut-être un peu moche, mais je travaille bien :-) Avoir essayé d'autres solutions en utilisant javascript personnalisé, mais juste fini avec des solutions qui fonctionnent presque bien, mais pas parfait. –

+0

De loin, c'est la solution parfaite :) –

2

Pas que je sache; c'est l'un ou l'autre. La seule façon dont je peux penser est de le configurer pour utiliser le contrôle contextuel, puis ajouter un gestionnaire d'événements JS pour le focus textbox, et trouver manuellement l'extendeur de calendrier, et il peut y avoir une méthode show() potentiellement. Pas sûr à 100%. Pour savoir faire:

function textboxFocus() { 
    var c = $find("<%= calextenderid.ClientID %>"); 
    //can use firebug to see if c.open method exists, or check for something else 
} 

Encore une fois, jamais fait, donc pas sûr à 100%.

HTH.

2

Utilisez la méthode show() de CalendarExtender, référencement par BehaviorID:

<asp:TextBox runat="server" ID="DateTextBox" /> 
<asp:ImageButton runat="server" ImageUrl="~/date_16x16.gif" OnClientClick="$find('Extender1').show();return false;" /> 
<ajaxtoolkit:CalendarExtenderrunat="server" id="Extender1" BehaviorID="Extender1" TargetControlID="DateTextBox"/>