asp.net
  • javascript
  • 2009-03-16 6 views 0 likes 
    0

    j'ai un code comme celui-ciproblèmes qui simulent clic sur un bouton ASP.NET

    <asp:Button ID="cancelDummyButt" runat="server" CausesValidation="False" 
        Text="cancel" onclick="cancelDummyButt_Click" Enabled="True" /> 
    

    (Javascript :)

    buttid = '<%=cancelDummyButt.ClientID.ToString%>'; 
    eltoclick = document.getElementById(buttid); 
    eltoclick.click(); 
    

    Le code côté serveur n'est pas appelé. Qu'est-ce qui ne va pas? Ça va bien jusqu'au "clic". Quelle est la meilleure façon de déboguer?

    (Ceci est d'obtenir le droit postback d'un iframe dans un UpdatePanel)

    +0

    Retirez le tostring et cela fonctionne! (et peut-être 'OnClick' au lieu de 'onclick') –

    Répondre

    0

    Tout d'abord, vous avez une erreur dans cette ligne:

    buttid = '<%= cancelDummyButt.ClientID.ToString() %>'; 
    

    ma recommandation est que, lieu votre code javascript à code-behind puis enregistrez à la page comme ça:

    string script = string.Format("var buttid = '{0}';", cancelDummyButt.ClientID); 
    if (!ClientScript.IsClientScriptBlockRegistered("myScript")) 
    { 
        ClientScript.RegisterClientScriptBlock(typeof(_Default), "myScript", script, true); 
    } 
    
    +0

    Je pense que ToString sans "()" est correct dans VB.NET - de toute façon buttid et eltoclick ont ​​été assignés correctement, autant que je pouvais voir – Olav

    0

    Solved - il a été causé par un jQuerywindow modal!

    (Aimeriez-vous une certaine manière autour, bien sûr)

    Olav

    1

    Olav, le truc avec les fenêtres modales est d'avoir un ASP caché: Bouton en dehors la fenêtre modale. Vous pouvez avoir un bouton html normal dans la fenêtre modale qui, lorsqu'on clique dessus, appelle la méthode __doPostback ('', '') pour le contrôle ASP: Button caché. Cela a le même effet que de cliquer sur le bouton ASP.

    <!-- start modal dialog div --> 
    
        <input type="button" onclick="__doPostBack('<%= btnDoIt.UniqueID %>','');" value="Do It!" /> 
    
    <!-- end modal dialog div --> 
    
    <asp:Button id="btnDoIt" style="display:none;" runat="server"></asp:Button> 
    

    1

    invoquant l'événement Programmatically clic() d'un contrôle ne fait pas feu la fonction de gestionnaire d'événements. Vous devrez l'invoquer manuellement ....

    if(eltoclick.onclick()) 
        eltoclick.click(); 
    
    Questions connexes