【问题标题】:call a Javascript function from ascx page code behind从后面的 ascx 页面代码调用 Javascript 函数
【发布时间】:2013-04-02 11:40:20
【问题描述】:

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

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

【问题讨论】:

  • 如果您告诉我们什么是行不通的,而不是指望人们猜测它,这会很有帮助。

标签: c# javascript asp.net


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    试试下面的

    <script type='text/javascript'>
    function SetActiveTab(a){
    alert(a);
    }
    </script>
    
    ScriptManager.RegisterStartupScript(this, this.GetType(), "tabmvng", "SetActiveTab(3);", true);
    

    【讨论】:

      【解决方案3】:
      Control Caller = this; //user control
      string MyScript= "SetActiveTab(3);";
      ScriptManager.RegisterStartupScript(Caller, typeof(Caller), "Script Name", MyScript), true);
      

      通过脚本管理器在将脚本从该用户控件添加到页面对象时遇到问题,请使用对调用用户控件的引用。此外,它会为您包装脚本,因此无需添加脚本标签。

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

      【讨论】:

        【解决方案4】:
        ScriptManager.RegisterStartupScript(this.Page, typeof(System.Web.UI.Page), "javascript", "YourScript", true);
        

        【讨论】:

          【解决方案5】:

          我遇到了同样的问题,即 Javascript 不在 html 输出中。事实证明,如果您从 ascx(控件)执行此操作,则必须传递对控件的引用,例如 Me

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

          之后,一切都开始工作了!谢谢马克舒尔泰斯!

          【讨论】:

            猜你喜欢
            • 2017-02-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多