2009-08-30 6 views
0

J'essaie de déclencher un événement button_click dans mon code pour un bouton asp: Button, mais il semble que je ne publie que lorsque je clique le deuxième fois plutôt que le premier. Voici mon codeProblèmes liés aux événements de publication

<asp:Button AccessKey="Y" EnableViewState="true" 
    Height="25px" runat="server" ID="myButton" 
    Text="hello" OnClick="clickit" /> 
<asp:TextBox runat="server" AutoPostBack="true" 
    ID="sddf"> 
</asp:TextBox> 

Mon code ressemble derrière comme ceci:

protected void clickit(Object sender, EventArgs e) 
{ 
    Unit myUnit = new Unit(50, UnitType.Pixel); 
    myButton.Height = myUnit; 
} 

maintenant techincally quand je clique sur le bouton, il devrait afficher en arrière et augmenter la hauteur du bouton à 50px de 25px, mais je devez cliquer deux fois pour cela? Qu'est-ce que je fais mal?

Répondre

4

Lorsque vous cliquez sur le bouton, il envoie une publication au serveur, ce qui recharge la page entière. Cela peut prendre du temps. Je suppose que vous n'attendez pas assez longtemps pour que la publication se termine et que vous le cliquiez à nouveau pendant le chargement de la page. Essayez de cliquer une fois sur le bouton, puis attendez que le chargement du navigateur soit complètement terminé.


En général, il est préférable de faire des choses comme ça sur le client en Javascript. De cette façon, vous évitez le besoin de faire une publication, ce qui le rend beaucoup plus rapide. Dans votre cas, si vous incluez la bibliothèque jQuery dans la page, vous pouvez écrire les éléments suivants (non testé):

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" /> 
<button onclick="$(this).height(50);">Button1</button> 
1

J'espère que cela résout votre problème:

function ChangeSize() 
{ 
     var submitButton = document.getElementById('<%= button1.ID %>'); 
     submitButton.height = 50; 
} 

<asp:button id="button1" runat = "server" onClick="ChangeSize()"> 
Questions connexes