2017-03-23 5 views
0

J'ai un bouton de recherche sur un filtre et quand on clique dessus, je dois montrer un autre bouton. Ce bouton ne déclenche pas de post-retour, donc la page ne s'actualise pas et le bouton ne s'affiche jamais. Lorsque la page charge d'abord un bool appelé DelStatus est défini sur true. Après avoir cliqué sur le bouton de recherche, si cela est vrai, je dois afficher btnEPODToExcel. Je l'ai essayé de changer le style, changer la visibilité et de modifier l'affichage de javascript:Afficher le bouton quand un autre bouton est cliqué

protected void btnSearch_Click(object sender, EventArgs e) 
{ 
    if (DelStatus == true) 
    { 
     btnEPODToExcel.Attributes.Add("style", "display:block"); 
     btnEPODToExcel.Visible = true; 

     ClientScript.RegisterClientScriptBlock(this.GetType(), "Message", 
               "<script>$(document).ready(function() { ShowEPODExcel();});</script>"); 
    } 
} 

JavaScript:

function ShowEPODExcel() 
      { 
       document.getElementById('<%= btnEPODToExcel.ClientID %>').style.display= "block"; 
       $('#<%= btnEPODToExcel.ClientID %>').show(); 
      } 

Button:

<asp:LinkButton runat="server" ID="btnEPODToExcel" CssClass="btnToExcel" Width="100px" ToolTip="Download Result to Excel" OnClick="btnEPODToExcel_Click" Text="EPODs to Excel" /> 
+1

Avez-vous essayé de déclencher une alerte pour être sûr que votre script fonctionne bien? Y at-il un problème avec l'utilisation de la fonction onclick de jquery? – ReadyFreddy

+0

Vérifiez si votre fonction ShowEPODExcel est appelée. Si elle est exécutée, vérifiez les attributs du bouton après le rendu. –

+0

@ReadyFreddy la fonction ShowEPODExcel n'est pas appelée. Avez-vous fait une erreur quelque part? – user123456789

Répondre

0

appelez-vous une fonction JS lorsque btnSearch cliqué (Clic client) et renvoie false ..?

sinon essayer de supprimer la méthode btnSearch_Click et recréer

+0

Cela semble être un commentaire plutôt qu'une réponse –

+0

parce que je ne peux pas commenter n'importe où en ce moment, sauf dans ma réponse;) –

0

S'il n'y a pas de problème sur l'utilisation de JQuery, vous pouvez essayer.

$(document).ready(function() { 

    $("#btnSearchClick").on('click', function() { 
     window.alert("Hello"); 
     document.getElementById('btnEPODToExcel').style.display = "block"; 
     $('btnEPODToExcel').show(); 
     return false; 
    }); 
}); 

Mais il ne sera pas postback simplement. Si vous voulez faire une action de publication, mon seul conseil peut être que tenir une session pour montrer ou cacher ce bouton. Modifier la valeur de session dans la méthode btnSearchClick_Click et par valeur de session, définir l'affichage du bouton sur Page_Load.

Si vous n'avez même pas l'alerte "Bonjour", vous avez probablement fait une erreur en ajoutant du Javascript à votre formulaire.

0

En supposant que btnSearch_Click est appelée. Je vous suggère de faire les changements suivants à votre code.

Bouton:

<asp:LinkButton runat="server" ID="btnEPODToExcel" style="display:none" Width="100px" ToolTip="Download Result to Excel" OnClick="btnEPODToExcel_Click" Text="EPODs to Excel" /> 

code-behind:

if (DelStatus == true) 
{ 
    btnEPODToExcel.Attributes.Add("style", "display:block"); 

} 

Hope this helps.

0

Si Rien ne fonctionne pour vous que stocker la valeur de Delstatus dans un champ caché au lieu de bool et de jouer avec elle en utilisant javascript. Une autre façon est d'essayer @kalyan Basa réponse