从后面的ascx页面代码调用Javascript函数

时间:2013-04-02 11:40:20

标签: c# javascript asp.net

我使用下面的客户端脚本将值传递给javascript函数。它在aspx页面中工作正常,但在ascx页面中,它不起作用。请帮我解决这个问题。

ScriptManager.RegisterStartupScript(this, this.GetType(), "tabmvng", "<script language='javascript'>SetActiveTab(3); </script>", false);

5 个答案:

答案 0 :(得分:4)

试试这个,这都是因为UserControl,你不再处理一个Page。

 ScriptManager.RegisterClientScriptBlock(this.Page, typeof(UpdatePanel), UniqueID, "myFunction('" + parameter + "');", true);

答案 1 :(得分:1)

尝试以下

<script type='text/javascript'>
function SetActiveTab(a){
alert(a);
}
</script>

ScriptManager.RegisterStartupScript(this, this.GetType(), "tabmvng", "SetActiveTab(3);", true);

答案 2 :(得分:1)

Control Caller = this; //user control
string MyScript= "SetActiveTab(3);";
ScriptManager.RegisterStartupScript(Caller, typeof(Caller), "Script Name", MyScript), true);

通过脚本管理器无法从该用户控件向Page对象添加脚本时使用对调用用户控件的引用。此外,它将为您包装脚本,因此无需添加脚本标记。

编辑注意:我假设您的脚本中存在此函数:SetActiveTab(3);

答案 3 :(得分:0)

ScriptManager.RegisterStartupScript(this.Page, typeof(System.Web.UI.Page), "javascript", "YourScript", true);

答案 4 :(得分:0)

我有同样的问题,Javascript不在html输出中。事实证明,如果你是从ascx(控件)执行此操作,则必须将引用传递给控件,​​例如 Me

ScriptManager.RegisterStartupScript(Me, GetType(Page), Guid.NewGuid().ToString(), jscript, True)

之后,一切都开始奏效了!谢谢Mark Schultheiss!