2010-07-02 4 views
15

Ich will nur herausfinden, ob es eine Möglichkeit, meine onClick Ereignis innerhalb CS- zu setzen:ASP.NET/HTML: OnClick-Eigenschaft der Schaltfläche HTML innerhalb ASP.NET (CS-)

<button type="submit" runat="server" id="btnLogin" class="button" onclick="btnLogin_Click();"> 

wo Login_Click() innen CS- sein sollte:

protected void btnLogin_Click(object sender, EventArgs e) 
{ 
    // do something 
} 

Bitte beachten Sie nehmen, dass ich ASP.NET-Taste hier nicht verwenden wird, und dass ich meine Login_Click nicht Veranstaltung setzen() innerhalb .html/ASPX so kann ich nicht "entlarfe" meine Codes. Irgendwelche Vorschläge?

Antwort

25

Sie können dies auf jedem Server-Steuerelement tun, und diese Schaltfläche wird zu einem Server-Steuerelement gemacht, indem Sie "runat=server" definieren. Das Problem ist wahrscheinlich in Ihrer Definition des Ereignisses:

<button ... runat="server" ... onServerClick="btnLogin_Click" /> 

Sie brauchen nicht „();“ dort ...

Abgesehen davon können Sie erklären, warum Sie die hier nicht verwenden, weil Ich sehe nicht wirklich ein Problem damit ...

+1

Es sieht so aus, als hätte er es bereits im Beispiel als 'runat =" server "' gemacht. – R0MANARMY

+0

R0MANARMY ist richtig, Sie benötigen das Ereignis "OnServerClick" für HtmlButton. Mein Beispiel aktualisiert ... – Koen

15

Sie wollen die onServerClick verwenden. Es ist ein Beispiel dafür, wie das auf MSDN zu tun:

<button id="Button1" OnServerClick="Button1_OnClick" runat="server"> 
    Click me! 
</button> 


protected void Button1_OnClick(object Source, EventArgs e) { 
    // secret codes go here 
} 
5

btnLogin.Click += new EventHandler(btnLogin_Click);

wird weisen Sie die btnLogin_Click Ereignishandler das Ereignis Click der Schaltfläche.

Ich möchte jedoch darauf hinweisen, dass die Zuweisung eines Handlers im Markup der aspx-Seite "Ihre Codes nicht aussetzt", da der HTML-Code, der an den Client gerendert wird, keine dieser Informationen enthält.

0

Ich weiß, es ist spät, aber ich habe so viel Zeit für dieses Problem verloren. Ich habe InnerHtml eines div mit Buttons gesetzt. Sie müssen type = "submit" zu Ihrer Schaltfläche hinzufügen, wenn Sie möchten, dass es funktioniert.

0

Es ist spät, aber für jemanden da draußen: Bewerben UseSubmitBehavior="False". Beispiel

<button type="submit" runat="server" UseSubmitBehavior="False" type="button" id="btnLogin" class="button" onclick="btnLogin_Click();">