2013-05-07 2 views
1

Я пытаюсь вызвать метод javascript в своем собственном файле из кода позади щелчка кнопки.Вызов функции Javascript из кода, стоящего за ASP.NET

ASPX файл

protected void Next_Click(object sender, EventArgs e) 
{ 
    if (hidden.Value == "") 
    { 
     Response.Write(@"<script language='javascript'>drawImage();</script>"); 
    } 
} 

JS файл

function drawImage() { 
    context.drawImage(video, 0, 0, 320, 240); 
    var imgBase = canvas.toDataURL('image/jpeg'); 
    document.getElementById("hidden").value = imgBase; 
} 

Проблема заключается в том, что это обыкновение вызывать метод рисования изображения, я подозреваю, что это вызывает файл JS является его собственный файл, но я не конечно.

Любая помощь, которую вы могли бы дать, была бы весьма признательна.

ответ

0

Предполагаю, что вы уже включили файл сценария на свою страницу.

Если требуется постбэк, вам нужно 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


Вы можете вызвать функцию из самой вашей кнопки, без обратной передачи.

<asp:Button runat="server" ID='next' OnClientClick="return drawImage();" /> 

и в сценарии

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; 
    } 
} 
0

1). Если функция хранится во внешнем файле (например, MyScript.js), то вы должны включить его в <head> разделе веб-страницы и добавить onclick событие к кнопке, как:

ButtonName.Attributes.Add("onclick", {YourFunction}); 

в Page_Load событие.

2) Еще один подход - назначить всю функцию javascript строковой переменной, а затем передать ее вместо {YourFunction} с префиксом javascript:. В этом случае вам даже не нужен внешний файл.

Надеюсь, это поможет. Мой лучший, Alex

Смежные вопросы