2008-10-09 5 views
7

J'utilise mon code-behind pour créer un bouton enregistrer par programme:Création d'un ASP: Bouton par programme?

Button btnSave = new Button(); 
    btnSave.ID = "btnSave"; 
    btnSave.Text = "Save"; 

Cependant, je pense que cela doit créer un bouton html ou besoin peut-être autre chose que je ne peux pas sembler mettre l'attribut OnClick dans la ligne suivante, je peux spécifier OnClientClick mais ce n'est pas celui que je veux définir.

Répondre

14
Button btnSave = new Button();  
btnSave.ID = "btnSave";  
btnSave.Text = "Save"; 
btnSave.Click += new System.EventHandler(btnSave_Click); 

protected void btnSave_Click(object sender, EventArgs e) 
{ 
    //do something when button clicked. 
} 
+0

c'est super merci Erikk –

5

Vous ajouteriez un gestionnaire à OnClick en utilisant la syntaxe + = si vous voulez enregistrer un gestionnaire pour l'événement OnClick dans le code derrière.

//Add the handler to your button, passing the name of the handling method  
btnSave.Click += new System.EventHandler(btnSave_Click); 

protected void btnSave_Click(object sender, EventArgs e) 
{ 
    //Your custom code goes here 
} 
+0

désolé ?! Je sais que je suis épais mais cette réponse n'a aucun sens pour moi, qu'est-ce qu'une syntaxe + =? –

+0

Jetez un oeil à la réponse d'Erikk qui montre bien. –

+0

Je viens d'éditer pour ajouter un échantillon ici aussi! –

8

Rappelez-vous aussi que lorsque l'utilisateur clique sur le bouton, il forcera un postback, ce qui crée une nouvelle instance de votre classe de page. L'ancienne instance dans laquelle vous avez créé le bouton est déjà supprimée. Vous devez vous assurer que cette nouvelle instance de la classe ajoute également votre bouton - et c'est gestionnaire d'événement - avant la phase de chargement, ou le gestionnaire d'événements ne fonctionnera pas (l'événement de chargement de la page sera toujours, cependant) .

+0

Excellent point! –

Questions connexes