javascript - 如何为 ASP.net 中的用户控件添加可使用控件 ID 调用的 JavaScript 函数

标签 javascript c# html asp.net

我想创建一个简单的用户控件,支持使用控件 id 调用自己的 javascript 函数,例如,如果我有以下控件:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyControl.ascx.cs" Inherits="Controls.MyControl" %>
<script type="text/javascript">
  function controlClicked(ID) {
      alert('Hello I am Control:'+ID);
  }
</script>

我希望能够在包含用户控件的页面上执行以下操作

 <%@ Page Title="" Language="C#" MasterPageFile="~/Light.master" AutoEventWireup="true" CodeBehind="Main.aspx.cs" Inherits="Control.Main" %>
<%@ Register Src="~/Controls.MyControl.ascx" TagPrefix="uc1" TagName="MyControl" %>
        <script type="text/javascript">
          function btnClicked() {
            myControl.controlClicked('myControl');
            }
        </script>
    <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
          <uc1:MyControl runat="server" id="myControl" />

    <asp:Button id="Button1"
               Text="Call UserControl Function"
               onclientclick="btnClicked" 
               runat="server"/>
    </asp:Content>

最佳答案

您必须确保每个 JavaScript 函数都有唯一的名称。为此,您可以使用 UniqueID

<script type="text/javascript">
    function controlClicked_<%= UniqueID %>(ID) {
        alert('Hello I am Control:' + ID);
    }
</script>

<asp:Button ID="Button1" Text="Call UserControl Function" runat="server" />

然后在UserControl后面的代码中设置OnClientClick以匹配相应的JavaScript函数。

Button1.OnClientClick = "controlClicked_" + UniqueID;

关于javascript - 如何为 ASP.net 中的用户控件添加可使用控件 ID 调用的 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40258947/

相关文章:

javascript - 吞掉我的可观察值中的错误并返回缓存的值 - 所有这些都使订阅保持事件状态

c# - Entity Framework 4.0 批量操作的性能

C# Typewriter - 如何重用模板 block

c# - 如何保护asp :textbox from user input?

javascript - 具有 "display: none"的父元素是否会导致子 imgs 无法加载?

javascript - onClick 事件在表单标签内不起作用

html - 如何从html中的标题标签中删除填充?

javascript - 从 from input 获取用户输入(数字)

javascript - 如何在 $.ajax 调用中使用变量调用成功函数

javascript - 在 reduce 函数之后返回一个对象