Ausführen von JavaScript-Funktion in der Code-behind — Wie Bekomme ich den Rückgabewert in den Code Hinter
Habe ich folgende JavaScript-Funktion, Die call-Jquery-JSON-Funktion und Holen Sie sich die DateTime-mit Bezug auf timezone. Dies funktioniert sehr gut.
<script type="text/javascript">
function JSFunctionName() {
$(document).ready(function () {
var timezone = "US/Central";
$.getJSON("http://json-time.appspot.com/time.json?tz=" + timezone + "&callback=?",
function (data) {
if (data.hour < 12) {
//alert(data.hour + ':' + data.minute); //want to return this value data.hour + data.minute
//document.getElementById('<%=HiddenField1.ClientID %>').value = data.hour + ':' + data.minute;//this does not work
}
})
});
}
</script>
Nun bin ich dem Aufruf dieser Javascription Funktion im Code hinter onclick der Schaltfläche
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
Code hinter
protected void Button1_Click(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(this.GetType(),
"alert", "JSFunctionName();", true);
//here I need the DateTime value that is get from JSON
//Response.Write(HiddenField1.Value);
}
Wie kann ich wieder den Wert aus dem Javascript-code hinter sofort nach Aufruf der Page.ClientScript.RegisterStartupScript
Bitte beachten Sie ich muss versuchen, den Wert in HiddenField, aber es funktioniert nicht. sehen Sie in den Kommentar.
Jede Idee oder alternative Lösung wird geschätzt.
Dank
Sind Sie mit updatepanels? In diesem Fall wird die $(document).ready-Ereignis wahrscheinlich nicht ausgelöst, nachdem die Schaltfläche click-Ereignis.
Nein, ich bin nicht mit updatepanel.
Nein, ich bin nicht mit updatepanel.
InformationsquelleAutor Muhammad Akhtar | 2011-05-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht ohne Postback an den server. Der Grund dafür ist, dass javascript auf dem client ausgeführt wird, und es wird nur ausgeführt, nachdem die Seite nicht mehr auf dem server.
Ich nehme an, dies ist ein erfundenes Beispiel, aber in diesem konkreten Fall, wenn Sie wollen, um die gleichen Informationen, die auf der client-und server, , die Sie benötigen, um zu berechnen, es auf dem server, und übergeben Sie diese dem Kunden.
Falls dies nicht möglich ist, müssen Sie einen webservice, aber das wird sich mit der Antwort asynchron.
Die Verwendung eines synchronen Aufruf, webservice Innenseite die
Button1_Click
handler. Sie können nicht mithilfe von JQuery auf dem server.Können Sie bitte geben Sie mir die Idee, wie kann ich das tun?
new WebClient().DownloadString("Your url here")
geben Sie das Ergebnis ein web-service-Aufruf.InformationsquelleAutor Khanzor
Können Sie ajax-Aufruf an server von der javascript-Funktion, oder Sie kann eine andere Schaltfläche auf dem Formular, verstecken Sie es mit Stil und verursachen auf diese Schaltfläche klicken, nachdem Sie eingerichtet berechnete Wert dem versteckten Feld in der JSFunctionName Funktion.
InformationsquelleAutor Yuriy Rozhovetskiy
Dein problem ist, dass die folgende Zeile:
nicht wirklich "ausführen" den Javascript-funciton. Es fügt nur die
der Seite in einem script-block, der ausgeführt werden nachdem der code abgeschlossen ist, und die Seite geladen wurde.
Eher als "Aufruf der Javascript -" aus dem button-click-Ereignis, Sie können die "OnClientClick" - Eigenschaft der Schaltfläche zu "JSFunctionName()":
Dadurch wird die JSFunctionName, um das Feuer vor dem postback geschieht. Sie können dann richten Sie Ihre JSFunctionName () - Methode den Wert true zurück, wenn es fertig ist, die dann Feuer das postback.
Dann werden Sie in der Lage, den Zugriff auf den Wert von HiddenField1 von der server-side-click-handler.
Einen bestimmten Grund, dass Sie nicht wollen, es zu tun auf diese Weise?
als ich zum Ausführen von server side code und Holen Sie sich Zeit-zone aus der DB und dann pass das Zeit-zone, dass JS-Funktion.
InformationsquelleAutor Matt Hilton