【问题标题】:Call a Javascript function from aspx从 aspx 调用 Javascript 函数
【发布时间】:2016-11-25 16:20:40
【问题描述】:

来自 aspx.cs 的代码:

.......
button.OnClientClick = "onButtonClick(this)";
.....

Javascript中的函数(写在aspx文件中):

<script> 
        function onButtonClick(event) {
           ....
        }
</script>

“程序”甚至没有进入脚本。

【问题讨论】:

    标签: javascript c# asp.net onclick


    【解决方案1】:

    你在哪里调用你的 button.OnClientClick 分配?如果它在页面加载或按钮单击事件中,它应该可以工作。如果您在 ajax 方法中调用它,则可能会在分配后呈现按钮,所以这可能是您的问题。

    protected void Page_Load(object sender, EventArgs e)
    {
        Button1.OnClientClick = "clicky(this)";
    }
    

    在 .aspx 页面上,就在结束标记之前:

    <script>
       function clicky(e) {
          alert("click");
       }
    </script>
    

    你应该可以看到 onclick="clicky(this)";当您在运行页面时检查 Chrome 开发人员工具中的元素时。

    【讨论】:

      【解决方案2】:

      好吧,当您总是可以将 on click 方法与普通的 html 按钮一起使用时,使用 asp 按钮调用 JavaScript 是多余的。

       <button onclick="onButtonClick()">Click me</button> 
      

      但是,您可以通过以下方式做到这一点

      Response.write("<script type=""text/javascript"">onButtonClick();</script>")
      
      // OR
      ClientScript.RegisterStartupScript(GetType(), "Javascript", "javascript:onButtonClick(); ", true);
      // OR 
      string name = "onButtonClick()";
              ScriptManager.RegisterClientScriptBlock(this, typeof(string), "Key", name, true);
      // OR    
      ScriptManager.RegisterStartupScript(this, GetType(), name, false); 
      

      【讨论】:

      • 那么可能要使用 scriptManager。
      • 同意@John。该页面将需要一个脚本管理器&lt;asp:ScriptManager ID="ScriptManager1" runat="server"&gt;&lt;/asp:ScriptManager&gt;,如图所示:javascriptshorts.com/…
      猜你喜欢
      • 1970-01-01
      • 2011-02-13
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      • 2013-01-12
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      相关资源
      最近更新 更多