Einstellwert für die javascript-variable aus dem code behind (C#)
Ich verstehen den Unterschied zwischen Client-side und Server-side-scripting. Ich habe eine javascript-Funktion und Variablen in meinem MasterPage
:
<script language="JavaScript" type="text/javascript">
var needToConfirm = false;
window.onbeforeunload = confirmExit;
function confirmExit()
{
if (needToConfirm)
{
needToConfirm = false;
return "Currently in edit mode. If you leave the page now then you will lose unsaved changes."
}
}
</script>
Angesichts der Tatsache, dass auf meinem ASP.NET (Client-Seite) ändern kann ich den Wert meiner needToConfirm
variable true
onClientClick
aber standardmäßig ist er false. Hier ist ein Beispiel.
<asp:Button ID="btnEdit" runat="server" Text=" Edit " onclick="btnEdit_Click" OnClientClick="needToConfirm = true;" />
Nun die Frage hier ist, wenn auf C# (Server-Seite) habe ich die needToConfirm
auf true unter einer if-statement
aber nicht unbedingt auf Page_Load
:
private void SetDefault()
if (Session[def.ID_CUST] != null)
{
//I want to change the variable value here
}
}
Dank.
UPDATE
Ich mit .NET 2.0 Classic und WebForms
- Direkter Aufruf von Skript von server-Seite sind nicht möglich. Aber Sie können von ClientScript.RegisterStartup() script.
Du musst angemeldet sein, um einen Kommentar abzugeben.
im code behind:
auf der client-Seite:
Können Sie einen versteckten Eingang, und dann setzen Sie diesen Eingang auf
true
oderfalse
von der server-Seite.Auf der client-Seite:
Dann auf der server-Seite:
Dann auf der client-Seite:
Page_Load
.Wenn verstehe ich das richtig, Sie konnten sich ein client-Skript wie in dem Beispiel http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx.
Wäre ein Skript schreiben, um die Seite Einstellung der Wert von
needToConfirm
in Javascript.Page_Load
aber wie wäre es, wenn in einer separaten Methode in C#?System.Web.UI.Page
. Button klickt, postbacks, etc, etc.Basierend auf Ihrem update sagen, es ist .NET 2.0 ist dies, wie Sie können, legen Sie eine javascript-variable:
http://msdn.microsoft.com/en-us/library/system.web.ui.page.registerstartupscript(v=vs. 80).aspx
Nur für Referenz. Hier ist die 4,5 Weise, so etwas zu tun:
http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager.registerstartupscript(v=vs. 110).aspx
Maby das hilft?