Reputation: 125
I have an Enable.js
file that has an Enable()
function. I want to call this Enable
function from the C# codebehind. My .js
file and c# file are in same application.
I have tried this, but it doesn't help me.
Page.ClientScript.RegisterStartupScript(this.GetType(), "click", "Enable(true)", true);
Upvotes: 0
Views: 4116
Reputation: 1611
I could see "click" in your code. Hence, I assume that you need to click some button to call Enable(true) function inside Enable.js file
Follow these below steps:
Reference your Enable.js file inside <head>
section like below.
<script src="Scripts/Enable.js" type="text/javascript"></script>
Enable.js file is given below:
function Enable(var){
alert(val)
}
To call on Enable()
function on Button1
's click event:
protected void Page_Load(object sender, EventArgs e){
Button1.Attributes.Add("OnClick", "return Enable('true');");
}
Let me know if you need some more help.
Upvotes: 2
Reputation: 1938
You are making a mistake here:
Page.ClientScript.RegisterStartupScript(this.GetType(), "click", "Enable(true)", true);
The Enable(true)
is not possible its literal string true that you're trying to pass as parameter.
You should try this way, so it may help.Its only a sample for understanding
string func = "showSuccessMessage('"+name+"');";
//Pass string as funcion in c#
This Link will explain calling javascript function with parameter from C# Code behind.
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "xx",
"<script>test("+x+","+y+");</script>");
Upvotes: 0
Reputation: 3951
Try this:
ScriptManager.RegisterClientScriptInclude(
this,
typeof(Page),
"Enable-js",
ResolveClientUrl("~/scripts/Enable.js"));
ScriptManager.RegisterStartupScript(
this, GetType(), Guid.NewGuid().ToString(),
"Enable(True);", true);
http://msdn.microsoft.com/pt-br/library/bb337005.aspx
Upvotes: 2
Reputation: 10012
I wrote a nice little function for calling jquery or just general JS in C# based on some VB I saw a while ago.
public bool runJQueryCode(string message)
{
ScriptManager requestSM = ScriptManager.GetCurrent(Page);
if (requestSM != null && requestSM.IsInAsyncPostBack)
{
ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), Guid.NewGuid().ToString(), getjQueryCode(message), true);
}
else
{
Page.ClientScript.RegisterClientScriptBlock(typeof(Page), Guid.NewGuid().ToString(), getjQueryCode(message), true);
}
return true;
}
private string getjQueryCode(string jsCodetoRun)
{
string x = "";
x += "$(document).ready(function() {";
x += jsCodetoRun;
x += " });";
return x;
}
So you can just call runJqueryCode("alert('hey')");
Upvotes: 0