当我尝试从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”位于.js中的“LoadZone”下方 我不知道为什么这个代码不起作用(最后一个)。任何想法?
修改1:
我试过你所说的@ematica:
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "scr", "Javascript:LoadZone(" + zone + ");", true);
但直接给了我另一个错误:
Microsoft JScript中的“运行时错误:'loadzone'未定义”
我正在研究这个错误。如果您有任何想法,请告诉我!谢谢!
答案 0 :(得分:1)
我发现问题在于,中间是在javascript中调用2个函数,并且只能通过每个回发调用一个函数来工作。要修复它,请将两种方法集成到一个javascript中。
答案 1 :(得分:0)
尝试将其加载为JavaScript ClientScriptBlock:
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "scr", "Javascript:LoadZone(" + zone + ");", true);