web-dev-qa-db-de.com

Wie ein Button-Click-Ereignis von JavaScript in ASP.NET ausgelöst wird

Wie löse ich ein Klickereignis für serverseitige Schaltflächen mit JavaScript aus?

Ich habe es so versucht:

document.getElementById("<%= ButtonID.ClientID %>").click();

Aber keine Verwendung. Wie kann ich es tun?

35
Venky

Sie können diese Zeile einfach in eine JavaScript-Funktion einfügen:

__doPostBack('btnSubmit','OnClick');

Oder machen Sie so etwas:

$('#btnSubmit').trigger('click');
39
Enigma State
var clickButton = document.getElementById("<%= btnClearSession.ClientID %>");
clickButton.click();

Diese Lösung funktioniert für mich, aber denken Sie daran, dass es nicht funktionieren wird, wenn Ihr asp-Button dies hat 

Sichtbar = "falsch"

Um die Schaltfläche auszublenden, die mit diesem Skript ausgelöst werden soll, sollten Sie sie mit <div hidden></div> ausblenden.

18

Ich habe den untenstehenden JavaScript-Code verwendet und es funktioniert ...

var clickButton = document.getElementById("<%= btnClearSession.ClientID %>");
clickButton.click();
15
Ruchir Agarwal

Keine der hier veröffentlichten Lösungen würde für mich funktionieren, dies war meine endgültige Lösung für das Problem.

// In Server Side code
protected void Page_Load(object sender, EventArgs e)
{
    Page.GetPostBackEventReference(hiddenButton);
}

// Javascript
function SetSaved() {
    __doPostBack("<%= hiddenButton.UniqueID %>", "OnClick");
}

// ASP
 <asp:Button ID="hiddenButton" runat="server" OnClick="btnSaveGroup_Click" Visible="false"/>
5
Amicable

Ich habe dieses Problem in zwei Tagen erlebt und plötzlich wurde mir klar, dass ich diese Klickmethode (für die Schaltfläche "Asp") in einer Übermittlungsschaltfläche (in HTML-Übermittlungsschaltfläche) verwende. Javascript-Methode ...

Ich meine ->

Ich habe einen HTML-Submit-Button und einen Asp-Button wie diesen:

<input type="submit" value="Siparişi Gönder" onclick="SendEmail()" />
<asp:Button ID="sendEmailButton" runat="server" Text="Gönder" OnClick="SendToEmail" Visible="True"></asp:Button>

SendToEmail () ist eine serverseitige Methode in Default.aspx SendEmail () ist eine JavaScript-Methode wie diese:

<script type="text/javascript" lang="javascript">
   function SendEmail() {
            document.getElementById('<%= sendEmailButton.UniqueID %>').click();
            alert("Your message is sending...");
        }
</script>

Und dieses "document.getElementById ('<% = sendEmailButton.UniqueID%>'). Click ();" Methode funktionierte nicht nur in Crome. Es funktionierte in IE und Firefox.

Dann habe ich viele Möglichkeiten ausprobiert, um die Methode "SendToEmail ()" in Crome auszuführen.

Dann habe ich plötzlich den HTML-Submit-Button geändert -> einfach den HTML-Button so und jetzt funktioniert es:

<input type="button" value="Siparişi Gönder" onclick="SendEmail()" />

Schöne Tage ...

3
Can OTUR

Ich kann die Dinge so machen:

innerhalb der JavaScript-Junction, die über die HTML-Schaltfläche ausgeführt wird:

document.getElementById("<%= Button2.ClientID %>").click();

ASP-Taste in div:

<div id="submitBtn" style="display: none;">
   <asp:Button ID="Button2" runat="server" Text="Submit" ValidationGroup="AllValidators" OnClick="Button2_Click" />
</div>

Alles wird von der CS-Datei ausgeführt, mit der Ausnahme, dass der folgende Code nicht ausgeführt wird. Es gibt kein Meldungsfeld und es wird auf dieselbe Seite umgeleitet (alle Felder aktualisieren):

 int count = cmd.ExecuteNonQuery();
 if (count > 0)
 {
   cmd2.CommandText = insertSuperRoster;
   cmd2.Connection = con;
   cmd2.ExecuteNonQuery();
   string url = "VaccineRefusal.aspx";
   ClientScript.RegisterStartupScript(this.GetType(), "callfunction", "alert('Data Inserted Successfully!');window.location.href = '" + url + "';", true);
  }

Irgendwelche Ideen, warum diese Zeilen nicht ausgeführt werden?

1
Zaichusha

Sie können ein verborgenes Feld aus Ihrem JavaScript-Code ausfüllen und ein explizites Postback von JavaScript durchführen. Überprüfen Sie dann auf der Serverseite das ausgeblendete Feld und tun Sie, was immer erforderlich ist.

0
Boomer
$("#"+document.getElementById("<%= ButtonID.ClientID %>")).trigger("click");
0
Farhad Manafi
document.FormName.btnSubmit.click(); 

funktioniert bei mir. Genießen.

0