【问题标题】:ASP.Net Server Control Client ScriptASP.Net 服务器控制客户端脚本
【发布时间】:2013-10-07 18:39:48
【问题描述】:

是否可以从 asp.net 服务器控件运行一次性客户端脚本? 我知道您可以在普通页面上使用Page.ClientScript.RegisterStartupScript(),但显然不适用于服务器控制。

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    onClientClick="Javascript_FuncName"属性上使用

    样本

    <asp:Button ID="Button1" runat="server" Text="SAVE & SUBMIT" 
    OnClick="BtnSave_Click" onClientClick="return CheckFunction"></asp:Button>
    

    因为您想首先运行服务器端代码,然后是客户端,然后在服务器端代码的末尾添加此行

    ClientScript.RegisterStartupScript(GetType(), "Javascript", 
    "javascript:FUNCTIONNAME(); ",   true); 
    

    如果你使用UpdatePanel,那么试试这样

    ScriptManager.RegisterStartupScript(GetType(), "Javascript", 
    "javascript:FUNCTIONNAME(); ", true);
    

    【讨论】:

    • 这将在服务器代码之前运行,但我需要先运行服务器代码,因此需要从后面的代码中触发它。
    • 然后在服务器端代码的末尾调用你的客户端函数
    • @user1166905: 你在使用更新面板吗?
    • 完美,最后一个做到了,尽管必须像这样更改:ScriptManager.RegisterStartupScript(this,GetType(), "Javascript", "javascript:displayMessageBox(); ", true);跨度>
    • @user1166905:我很高兴,这对你有帮助
    【解决方案2】:

    我知道您可以在普通页面上使用 Page.ClientScript.RegisterStartupScript() 但显然不适用于服务器控件。

    是的,它确实适用于服务器控件。例如,您可以在服务器控件的OnPreRender 方法中调用Page.ClientScript.RegisterStartupScript

    【讨论】:

    • 抱歉,它确实存在,但我需要在服务器端的按钮单击事件后运行它!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 2014-08-27
    相关资源
    最近更新 更多