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

3
我正在使用以下客户端脚本将值传递给JavaScript函数。在aspx页面中它可以正常工作,但在ascx页面中却不能正常工作。请帮助我解决这个问题。
ScriptManager.RegisterStartupScript(this, this.GetType(), "tabmvng", "<script language='javascript'>SetActiveTab(3); </script>", false);

如果您告诉我们哪里出了问题,而不是让人们去猜测,这会很有帮助。 - nunespascal
5个回答

5
尝试这个吧。这是因为使用UserControl,你不再处理页面了。
 ScriptManager.RegisterClientScriptBlock(this.Page, typeof(UpdatePanel), UniqueID, "myFunction('" + parameter + "');", true);

1
尝试以下内容:
<script type='text/javascript'>
function SetActiveTab(a){
alert(a);
}
</script>

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

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

通过脚本管理器,当您在用户控件中为页面对象添加脚本时,需要使用对调用用户控件的引用。此外,它将为您包装脚本,因此无需添加脚本标记。
编辑说明:我假设您的脚本中存在此函数:SetActiveTab(3);

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

-1

我遇到了与 Javascript 未在 HTML 输出中的相同问题。 原来如果您是从 ascx(控件)执行此操作,则必须通过对控件的引用进行传递,例如 Me

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

之后,一切都开始正常工作了!感谢Mark Schultheiss!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接