asp.netclientscript

How to use ClientScript.RegisterClientScriptBlock with Inline code?


I have aspx page where there is no code behind. Server side Code written inside tag with runat server attribute.

If i use

ClientScript.RegisterClientScriptBlock(this.GetType(), "Email", "GetEmail();");

in page_load() event, it just print GetEmail(); when page load

My code looks like

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <script type="text/javascript" language="javascript">
            function GetEmail()
            {
                alert('hi');
            }
        </script>
        
    </head>
    <body>
    <form id="form1" runat="server">
           Some control here
    </form>
</body>
</html>

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
ClientScript.RegisterClientScriptBlock(this.GetType(), "Email", "GetEmail();");
}
</script>

Solution

  • You need to pass true as the last argument to RegisterClientScriptBlock() in order for your client-side code to be wrapped in a <script> element:

    protected void Page_Load(object sender, EventArgs e)
    {
        ClientScript.RegisterClientScriptBlock(GetType(), "Email",
            "GetEmail();", true);
    }