2013-07-10 15 views
12

Ich habe ein kleines Problem. Ich entwickle ein Online-Sitzplatzreservierungssystem, mit dem Nutzer Sitzplätze anklicken und auswählen können. Ich benutze Knöpfe für Sitze. Ich schreibe eine Methode für das Button Click Event für alle Buttons. Ich muss wissen, wie man die ID der Taste identifiziert, der Benutzer hat geklickt. Danke im Voraus.asp.net Wie bekomme ich die ID der Schaltfläche Benutzer geklickt

Antwort

26

Wenn Sie eine Taste Ereignis geklickt wird, die Signatur der Methode, die das Ereignis so geht behandeln werden:

protected void foo (object sender, EventArgs e) 

sender in diesem Fall ist die Schaltfläche, die geklickt wurde. Wirf es einfach wieder auf Button und schon hast du es. Wie folgt aus:

Button button = (Button)sender; 
string buttonId = button.ID; 

können Sie alle Ihre Tasten ihre Click Ereignis dem gleichen Verfahren wie diese zeigen.

+0

@ jabu.hlong Ich sah Ihre Bearbeitung. Es ist richtig, ich weiß nicht, warum es abgelehnt wurde. Ich korrigiere meine Antwort hier, danke. – Renan

5

Der erste Parameter Ihres Event-Handlers (object source oder manchmal object sender) ist ein Verweis auf die Schaltfläche, auf die geklickt wurde. Alles, was Sie tun müssen, ist es gegossen und dann können Sie die ID-Wert abrufen, zB:

void Button_Click(object sender, EventArgs e) 
{ 
    Button button = sender as Button; 
    if (button != null) 
    { 
     //get the id here 
    } 
} 
+0

+1, weil es korrekt ist, aber ich musste das einfach sagen: Wenn Sie eine NULL-Referenz für den Absender in einer Methode, die von einem 'Button.Click'-Ereignishandler aufgerufen wird, erhalten, macht jemand etwas sehr krank irgendwo. – Renan

+1

Unabhängig von den Umständen ist es immer empfehlenswert, nach einem sicheren Cast auf Null zu prüfen. –

+0

aber es gibt kein solches Schlüsselwort "Absender" ... Sorry, ich habe den Code nicht verstanden – LIH

1

Ich denke, eine andere Art und Weise gibt es diese Methode tun Sie es nicht gedacht, kann warum Sie stellen ein nicht

Bildsteuerung

Sie nur das Bild der Farbe für diese Methode wechseln muss, die erste gehen wir davon aus, dass es Red ist und es bedeutet frei Sitz, und der zweite ist Blau und bedeutet genommen.

hier ist ein Link Sie über dieses Thema wissen müssen, kann How to change color of Image at runtime

Hoffe, dass ich Ihnen eine bessere Vorstellung gab könnten. danke

+0

Nicht die Antwort der OP oder jemand anderes dachte über, aber +1 für die Idee. Das ist viel besser in Bezug auf Benutzerfreundlichkeit und Benutzerfreundlichkeit. – Renan

+0

Übrigens würde er immer noch wissen müssen, wie man Daten von der Schaltfläche holt, auch wenn er es so gemacht hat. – Renan

Verwandte Themen