Reputation: 458
I have this aspx:
<body>
<div>
<script type="text/javascript">
function NewPage() {
document.location.href = "http://www.nextservice.pt/"
}
</script>
<form id="form1" runat="server">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Btn2" runat="server" Text="OK" onclick="Button2_Click" />
CODE1: <asp:Label ID="Label1" runat="server" Text="Label" ForeColor="#CC0000" />
</form>
</div>
</body>
and I'm working with web forms, and I wont call this button on aspx.cs
public partial class SITE_TESTER : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button2_Click (object sender, EventArgs e)
{
string code = TextBox1.Text.ToString();
if (!verifyCode(code)) // comparing users from table
{
Label1.Text = "Not Exists"; //for invalid code
}
else
{
Label1.Text = "Exist"; //for sucsseful code
/*
I Wont call my JavaScript Function here!!!!
*/
}
}
}
Upvotes: 2
Views: 50789
Reputation: 12375
You can call a JavaScript method from server side in asp.net in the following ways:
protected void button_Click(object sender , EventArgs e)
{
string jsMethodName = "NewPage()";
ScriptManager.RegisterClientScriptBlock(this, typeof(string), "uniqueKey", jsMethodName, true);
//or
//ScriptManager.RegisterStartupScript(this, GetType(), "NewPage()", false);
}
You can use either ScriptManager.RegisterStartupScript
or ScriptManager.RegisterClientScriptBlock
The difference between the two is explained below:
Let's say we have a .aspx page with the following form tag: (Line nos. are for reference)
1. <form id="Form1" runat="server">
2. ..
3. ..
4. ..
5. </form>
Now let's look at key differences for each method :
A.
Page.RegisterClientScriptBlock()
will insert the block of script
before Line 2.
Page.RegisterStartupScript()
will insert the script after Line 4.
B.
Page.RegisterClientScriptBlock()
should usually be used for scripts
encapsulated in functions. (hence the word "block")
Page.RegisterStartupScript()
can be used for any script, even if it's
not in a function.
C.
Page.RegisterClientScriptBlock()
should be used for functions that
don't need to run on Page load.
Page.RegisterStartupScript()
should be used for scripts that must run
on Page Load.
D.
Page.RegisterClientScriptBlock()
should be used for a script that does
not require the form elements to have been created.
Page.RegisterStartupScript()
should be used for scripts that require
the form elements to have been created and uses references to them.
Notice that all the 4 differences are essentially related to each other (they build upon the prev. one). The difference put in one line can sometimes be too subtle.
You can learn more about these from here and here
Upvotes: 10
Reputation: 12815
You can add a script which will be executed when page is loaded to browser:
Page.RegisterStartupScript("unique_key", "<script type=\"text/javascript\">NewPage()</script>"); // but this is deprecated function
or like this:
ClientScript.RegisterClientScriptBlock(this.GetType(), "unique_key", "NewPage()", true);
But if you simply want to do a redirect (as I can see from your NewPage function), you can do:
Response.Redirect("http://www.example.com");
Upvotes: 0