Frage

Ich habe eine Öffentlichkeit in meinem Code hinter der Seite, die eine Zeichenfolge nimmt. Ich möchte diese Methode von JavaScript aufrufen.

Der Parameter, den ich weitergeben möchte, ist variabel, der sich von einem DDL ändert.

Also habe ich so etwas:

 var value = document.getElementById('ddlContact').value;
        <%=PopulateContactFields("value") %>

Dadurch wird das Wort "Wert" und nicht die Daten im Wert weitergegeben.

Ich kann nicht die richtige Syntax herausfinden, um die Daten im Wert zu übergeben.

Vielen Dank

War es hilfreich?

Lösung

Wie von anderen erwähnt, ist es unmöglich, der Versuch, direkt von JavaScript direkt von JavaScript zurückzuführen, zugreifen.

Sie können jedoch damit kommunizieren indirekt.

Ich denke, Ihre beste Aufnahme ist es, eine Kombination aus JQuery und der zu verwenden [WebMethod] Attribut.

JavaScript -Funktion mit JQuery, um einen Ajax -Aufruf durchzuführen:

function Search() {
    var search = $('#<%= ddlContact.ClientId %>').val();
    var options = {
        type: "POST",
        url: "Default.aspx/Hello",
        data: "{'name' :'" + search + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            alert(msg);
        }
    };
    $.ajax(options);
}

Code hinter:

public partial class _Default : System.Web.UI.Page
{
    [WebMethod]
    public void Hello(string name)
    {
      return "Hi " + name;
    }
}

Andere Tipps

Der von Ihnen angezeigte Code ist Serverseite ausgeführt, wenn das HTML generiert wird. Mit anderen Worten, es wird ausgeführt, bevor es den Browser trifft und Ihr Benutzer die Chance hatte, etwas mit der Seite zu tun.

Egal auf welche Syntax Sie hier verwenden würden, die Informationen, die Sie möchten, können zu diesem Zeitpunkt nicht zugegriffen werden - sie existiert noch nicht.

Der richtige Ansatz hier besteht darin, diese Informationen entweder durch Posten der Seite oder die Verwendung von AJAX an den Server zu senden und am Ende des Anforderungs-/Antwortzyklus Ihre Verarbeitung durchzuführen

Eine andere Option wäre die Durchführung der Client -Seite mit JavaScript

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top