I\'m attempting to call a javascript method in its own file from code behind on a button click.
aspx file
protected void Next_Click(object sender, EventA
see http://msdn.microsoft.com/de-de/library/z9h4dk8y.aspx
try this
string jquery = "drawImage();"
ClientScript.RegisterStartupScript(typeof(Page), "a key",
"<script type=\"text/javascript\">"+ jquery +"</script>"
);
1). If the function is stored in external file (e.g. MyScript.js
) then you should include it in the <head>
section of the web page and add onclick
event to the button, like:
ButtonName.Attributes.Add("onclick", {YourFunction});
in Page_Load
event.
2) Another approach is to assign the entire javascript function to a string variable and then pass it instead of {YourFunction} prefixed with javascript:
. In this case you don't even need the external file.
Hope it will help. My best, Alex
I presume you already included the script file in your page.
If you require the postback, you need ClientScriptManager.RegisterStartupScript Method (Type, String, String, Boolean) ..
protected void Next_Click(object sender, EventArgs e)
{
if (hidden.Value == "")
{
ClientScriptManager cs = Page.ClientScript;
cs.RegisterStartupScript(this.GetType(), 'startupScript', 'drawImage();', true);
}
}
More Info from SO
You can call the function from your button itself, without the postback.
<asp:Button runat="server" ID='next' OnClientClick="return drawImage();" />
and in the script
function drawImage() {
if(document.getElementById("hidden").value != undefined || document.getElementById("hidden").value != "")
{
context.drawImage(video, 0, 0, 320, 240);
var imgBase = canvas.toDataURL('image/jpeg');
document.getElementById("hidden").value = imgBase;
return false;
}
}