Ho tre pulsanti per chiamare lo btn_Clicked
sull'evento onClick
. Nel codice sottostante voglio ottenere l'ID del pulsante che ha causato il postback. So che posso assegnare ciascun pulsante per chiamare un metodo diverso, ma mi piacerebbe imparare un po 'di ASP.Net. Dimmi anche quale metodo è più efficiente? Chiamando diversi metodi su diversi clic sui pulsanti o chiamando lo stesso metodo (se la funzionalità di ciascun pulsante è la stessa).Come individuare il pulsante su cui è stato fatto clic nel codice?
risposta
Lanciare l'oggetto mittente sul pulsante e quindi è possibile ottenere tutte le proprietà.
Button clickedButton = (Button)sender;
mi dicono anche qual è il metodo più efficiente? Chiamando diversi metodi su diversi clic del pulsante o chiamando lo stesso metodo (se la funzionalità di ciascun pulsante è la stessa).
Se la funzionalità è la stessa, è meglio avere un singolo evento, poiché non è necessario replicare il codice. Ricorda lo DRY principle.
consideri il seguente esempio:.
protected void Button1_Click(object sender, EventArgs e)
{
Button clickedButton = sender as Button;
if (clickedButton == null) // just to be on the safe side
return;
if (clickedButton.ID == "Button1")
{
}
else if(clickedButton.ID == "Button2")
{
}
}
Verificare se l'argomento sender
del vostro metodo di callback è lo stesso riferimento del pulsante siete interessati a
Button button1;
Button button2;
void OnClick(object sender, RoutedEventArgs args)
{
Button button = sender as Button;
if (button == button1)
{
...
}
if (button == button2)
{
...
}
}
Mi viene in mente un po 'di sorpresa. Pensavo che == avrebbe usato 'Object.equals', che testerebbe se sono lo stesso riferimento. Quale parte di ciò è errata? – ceyko
Probabilmente è la cosa migliore da fare comunque (e probabilmente necessario), quindi il mio edit :) – ceyko
Direi se è una buona pratica o no, cosa succede se vuoi accedere al ButtonID, o qualche altra informazione relativa alle sue proprietà . Devi lanciare l'oggetto sul pulsante, come lo stai facendo ora – Habib
- 1. listener di azioni su JDialog per il pulsante su cui è stato fatto clic
- 2. Il pulsante jquerymobile su cui è stato fatto clic diventa blu
- 3. Come far apparire un pulsante su cui è stato fatto clic o selezionato? (JavaFX2)
- 4. Come identificare il nome della forma su cui è stato fatto clic in VBA
- 5. Come si ottiene il controllo su cui è stato fatto clic per aprire un ContextMenuStrip?
- 6. Come sapere quale vista all'interno di un elemento ListView specifico su cui è stato fatto clic
- 7. Come gestisco il clic del pulsante fatto su ImeOptions?
- 8. Come posso usare jQuery ottenere l'ID del div su cui è stato fatto clic?
- 9. Come si imposta lo stato su cui si fa clic per il mio pulsante personalizzato?
- 10. Come ottenere il selettore su cui è stato associato l'evento "clic"?
- 11. Come selezionare il pulsante su cui fare clic su Robotium per una finestra di avviso?
- 12. jQuery - Come controllare se è stato fatto clic su un collegamento in uno specifico DIV?
- 13. Il pulsante VBA Excel si ridimensiona dopo aver fatto clic su di esso (pulsante di comando)
- 14. Cambia il testo del pulsante dopo il clic, quindi ripristinalo dopo aver fatto nuovamente clic
- 15. Come rendere UITextView il pulsante "Fatto" resignFirstResponder?
- 16. Ottieni l'ID dell'elemento su cui si è fatto clic nella funzione
- 17. Determinare su quale mouse è stato fatto clic (più dispositivi mouse) in .NET
- 18. rilevare quando il pulsante dettaglio divulgazione di una cella è stato fatto clic (quando si utilizza un XIB cella personalizzato)
- 19. Come attivare un pulsante Fai clic su evento nel codice dietro nel controllo utente?
- 20. Come ridisegnare il composito swt dopo aver fatto clic su un pulsante per modificare il contenuto di quel composito
- 21. Disabilitare un pulsante una volta fatto clic in Angular2
- 22. Come rilevare se l'utente ha fatto clic sul pulsante "Indietro"
- 23. Come dire quale dispositivo fisico ha fatto clic su un pulsante in C#?
- 24. jQuery - Rimuovi classe da tutte le div tranne quella su cui ho fatto clic su
- 25. Come cancellare una casella di testo dopo aver fatto clic su un pulsante in WPF?
- 26. Come individuare il codice chiamato da .External2()?
- 27. jQuery - Posiziona il cursore nel campo di input quando il collegamento ha fatto clic su
- 28. Come gestire un pulsante su cui si fa clic su Android?
- 29. MVC cui pulsante di invio è stato premuto
- 30. Fare clic su un pulsante a livello di codice - JS
utilizzare l'oggetto mittente, in caso handler. – ryadavilli
Impara mvc invece – Jeroen