2010-08-11 11 views
1

J'ajoute beaucoup de boutons à l'exécution à mon formulaire. Quand je pousse ces boutons je veux une fenêtre de confirmation pour apparaître et demander si je suis sûr de supprimer cet article.Boutons et ConfirmButtonExtender ajoutés dynamiquement

Comment irais-je en faisant cela. Chaque bouton est ajouté dynamiquement, donc je m'attends à ce que le confirmbutonextender soit ajouté de cette façon. Dois-je ajouter un extendeur pour chaque bouton ou dois-je en créer un dans le fichier aspx, puis modifier l'ID cible lors de l'exécution?

MISE À JOUR

Panel div = new Panel(); 
div.CssClass = "BulletDiv"; 
content.Controls.Add(div); 

HyperLink picture = new HyperLink(); 
picture.ImageUrl = "~/Icons/Ny_mappa.png"; 
picture.NavigateUrl = "?navID=" + item.Nav_ID + "&ddlID=" + ddlID; 
div.Controls.Add(picture); 

div.Controls.Add(new LiteralControl("<br/>")); 

HyperLink description = new HyperLink(); 
description.CssClass = "BulletDiv_Text"; 
description.Text = item.Nav_Name; 
description.ID = item.Nav_ID.ToString(); 
description.NavigateUrl = "?navID=" + item.Nav_ID + "&ddlID=" + ddlID; 
div.Controls.Add(description); 

Button eyda = new Button(); 
eyda.Text = "Eyda"; 
eyda.CommandArgument = item.Nav_ID.ToString(); 
eyda.Command += new CommandEventHandler(eyda_Command); 
div.Controls.Add(eyda); 

Répondre

2

Avez-vous essayé un javascript simple?

onclick='return confirm("Are you sure you would like to delete this item?");' 

Vous ajoutez ce lors de l'ajout du bouton comme ceci:

Button edya = new Button(); 
edya.Attributes.Add("onclick","return confirm(\"Are you sure you would like to delete this item?\");"); 
//... set other fields and add to page 

Sinon, vous pouvez utiliser JQuery:

eyda.CssClass = "confirm"; //When adding button on server side 

ensuite sur le côté client, ajoutez ce qui suit javascript (ayant également ajouté la bibliothèque jquery bien sûr).

$(document).ready(function() { 
    $('.confirm').click(function() { 
     if (!confirm("Are you sure etc?")) { 
      return false; //prevent button event propogating 
     } 
    }); 
}); 

Si vous voulez obtenir réel intelligent et inclure plus d'info ...

eyda.CssClass = "confirm"; //When adding button on server side 
eyda.Attributes.Add("SomeProperty","Some value, specific to this button"); 


    $(document).ready(function() { 
    $('.confirm').click(function() { 
     var someValue= $(this).attr("SomeProperty"); 

     if (!confirm("Are you sure you want to delete " + someValue)) { 
      return false; //prevent button event propogating 
     } 
    }); 
}); 

MISE À JOUR: Changer l'image de fond comme celui-ci ...

eyda.CssClass = "confirm"; //When adding button on server side 

Stylesheet

.confirm { 
    background-image: url('Images/ClickMe.gif'); 
    background-repeat:no-repeat; 
} 
.clicked { 
    background-image: url('Images/Clicked.gif'); 
} 

Javascript:

$(document).ready(function() { 
    $('.confirm').click(function() { 
     if (!confirm("Are you sure etc?")) { 
      $(this).addClass("clicked"); 
      return false; //prevent button event propogating 
     } 
     //Not meaningful to change style here as a postback is about to occur... 
     //$(this).addClass("clicked"); 
    }); 
}); 
+0

Je cherche quelque chose de facile. Le javascript a fait l'affaire mais puis-je le personnaliser? Changer l'icône, le texte sur les boutons et ainsi de suite? – eski

+0

Oui, JQuery vous permet de faire cela facilement: Vous pouvez définir n'importe quel attribut en utilisant le .attr ("attributeName", "valueToSetItTo"); technique ... http://api.jquery.com/attr/ –

+0

Postez un extrait du bouton rendu et je vais changer le JQuery ci-dessus pour vous montrer. –

Questions connexes