Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting value for javascript variable from code behind (C#)

I understand the difference between Client-side and Server-side scripting. I have a javascript function and variable in my 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>

Given the fact that on my ASP.NET (Client-side) I can change the value of my needToConfirm variable to true onClientClick but by default it is false. Here's an example.

 <asp:Button ID="btnEdit" runat="server" Text="  Edit  " onclick="btnEdit_Click" OnClientClick="needToConfirm = true;" />

Now the question here is when on the C# (Server-side) I have to set the needToConfirm to true under an if-statement but not necessarily on Page_Load:

private void SetDefault()

    if (Session[def.ID_CUST] != null)
    {
          //I want to change the variable value here
    }
}

Thanks.

UPDATE

I'm using .NET 2.0 Classic and WebForms

like image 663
Mark Avatar asked May 10 '13 03:05

Mark


4 Answers

in code behind:

ScriptManager.RegisterStartupScript(this, this.GetType(), "", "urFunction('urValHere');", true);

on client-side:

function urFunction(urParam) {
        //do what u want here
        //use urParam
    }
like image 59
Vond Ritz Avatar answered Nov 15 '22 21:11

Vond Ritz


You can use a hidden input and then set this input to true or false from the server side.

On the client side:

<input type="hidden" id="hdnConfirm" runat="server" value="false"/>

Then on the server side:

 if (Session[def.ID_CUST] != null)
    {
          //I want to change the variable value here
           hdnConfirm.Value = "true";
    }

Then on the client side:

var needToConfirm = $('#hdnConfirm').val();
like image 36
Semih Yagcioglu Avatar answered Nov 15 '22 19:11

Semih Yagcioglu


If I understand this correctly, you could register a client script like in the example at http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx.

ClientScriptManager cs = Page.ClientScript;
if (!cs.IsStartupScriptRegistered(this.GetType(), "EditMode")) {
    cs.RegisterStartupScript(this.GetType(), "EditMode", "needToConfirm = true;", true);
}

That would write a script to the page setting the value of needToConfirm in Javascript.

like image 32
Steven V Avatar answered Nov 15 '22 20:11

Steven V


Based on your update saying it's .NET 2.0, this is how you can set a javascript variable:

Page.RegisterStartupScript("SetVar", "var needToConfirm = true;");

http://msdn.microsoft.com/en-us/library/system.web.ui.page.registerstartupscript(v=vs.80).aspx

like image 35
LouD Avatar answered Nov 15 '22 21:11

LouD