2010-04-08 6 views
0

Je tente de construire mon propre sélecteur de date en utilisant du code provenant de plusieurs sources. Plus précisément, je tente maintenant d'avoir un bouton asp: afficher/cacher le calendrier.Bouton ASP appelant la fonction JavaScript

Qu'est-ce que je fais mal?

myDate.ascx

<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="myDate.ascx.vb" 
    Inherits="Website.myDate" %> 

<script language="javascript" type="text/javascript"> 
    function toggleCalendar(myID) { 
     var obj = document.getElementById(myID) 
     obj.style.display = (obj.style.display == "none") ? "" : "none"; 
    } 
</script> 

<asp:TextBox ID="dateText" runat="server" > </asp:TextBox> 
<asp:Button ID="dateBtn" runat="server" UseSubmitBehavior="false" Text="x" /> 
<asp:Calendar ID="dateCal" runat="server" > 

</asp:Calendar> 

myDate.ascx.vb

Partial Public Class myDate 
    Inherits System.Web.UI.UserControl 

    Protected Sub Page_Load 
     (ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     'Add OnClick event to call JavaScript to toggle calendar display' 
     calBtn.Attributes.Add("OnClick", "toggleCalendar(" & cal.ClientID & ")") 
    End Sub 

End Class 

code HTML pour le bouton (du navigateur)

<input type="button" name="ctl03$calBtn" value="x" 
     onclick="toggleCalendar(ctl03_cal);__doPostBack('ctl03$calBtn','')" 
     id="ctl03_calBtn" /> 

Répondre

1

Depuis votre opération est tout côté client. Que diriez-vous juste de définir un bouton HTML normal?

<input type="button" value="X" onclick='toggleCalendar("<%=cal.ClientID%>");'/> 
+0

Merci! Travaillé parfaitement. Je l'avais au début (avant de faire le contrôle de l'utilisateur), je ne connaissais pas la syntaxe <%=CODE%>. – Steven

0

Il semble que vous deviez ajouter un "retour faux"; instruction à votre ligne attributes.add.

calBtn.Attributes.Add("OnClick", "toggleCalendar(" & cal.ClientID & "); return false;") 

Cela devrait empêcher l'événement de publication de se déclencher dans votre formulaire Web.

-2

est asp il suffit d'utiliser OnClientClick() au lieu de OnClick() Enjoy :)

Questions connexes