2014-10-15 3 views
1

У меня проблема при попытке вызова метода в javascript из C#.Не удалось вызвать метод JavaScript

//Code C# in pageLoad 
string zone="something"; 
string script = "LoadZone(\"" + zone+ "\");";   
ScriptManager.RegisterStartupScript(this, typeof(Page), "Load", script, true); 

//Code javaScript 
function LoadZone(res) 
{ 
    CargarMapa(); 
    AgregarMarkerLoad(res); 
} 

Этот код работает для меня. Я установил точку останова в первой строке метода «LoadZone» и хорошо. Но когда я пытаюсь изменить код для вызова другого метода в том же .js, просто не работает.

//Code C# in pageLoad 
string zone ="something"; 
string script = "watchZone2(\"" + zone+ "\");"; 
ScriptManager.RegisterStartupScript(this, typeof(Page), "Load", script, true); 

//Code javaScript 
function watchZone2() 
{ 
    var aaa=""; 
} 

Метод «watchZone2» ниже «LoadZone» в .js я не знаю, почему этот код не работает (последний). Есть идеи??

Edit 1:

Я попробовал то, что вы сказали @ematica:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "scr", "Javascript:LoadZone(" + zone + ");", true); 

но непосредственно дает мне другую ошибку:

«Ошибка выполнения в Microsoft JScript:«loadzone 'не определено "

Я исследую эту ошибку. Если у вас возникла какая-либо идея, просто дайте мне знать! Благодаря!

ответ

1

Я нашел проблема заключалась в том, что в середине звала 2 функции в JavaScript и работает только путем вызова функции за постбэка. Чтобы исправить это, он интегрирует 2 метода в один из javascript.

0

Попробуйте загрузить его как JavaScript ClientScriptBlock:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "scr", "Javascript:LoadZone(" + zone + ");", true); 
+0

спасибо за редактирование времени 1! –