如何在ASP.net中为用户控件添加JavaScript函数,可以使用控件ID进行调用 - javascript

我想创建一个简单的用户控件,该控件支持使用控件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原型功能。

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

“ ”将为页面上每次出现的“ MyControl”生成一个javascript原型对象。然后,您可以使用此原型对象来调用特定控件出现的方法。可以按照以下步骤完成:

<uc1:MyControl runat="server" id="myControl1" />

<button id="btnShowAlert1" onclick="javascript:btnShowAlert1_Clicked();">Click 1 </button>

<uc1:MyControl runat="server" id="myControl2" />

<button id="btnShowAlert2" onclick="javascript:btnShowAlert2_Clicked();">Click 2</button>    

<script type="text/javascript">
    var myControl1 = <%=myControl1.ClientID%>;
    var myControl2 = <%=myControl2.ClientID%>;

    function btnShowAlert1_Clicked() {
        if(typeof(myControl1) != "undefined") {
            myControl1.controlClicked('myControl1');
        }
    }

    function btnShowAlert2_Clicked() {
        if(typeof(myControl2) != "undefined") {
            myControl2.controlClicked('myControl2');
        }
    }

    window.onload = function() {
        if(typeof(myControl1) != "undefined") {
            myControl1.controlLoaded('myControl1');
        }
    }
</script>

如何在ASP.NET上使用JavaScript设置文本框的值 - javascript

我需要使用来自javascript输入的值设置asp文本框。我在这里:<td ><asp:TextBox ID="AddressTextBox" runat="server" Text='<%# Bind("Address") %>' ClientI…

将Web用户控件添加到页面时,asp按钮onclick不会触发 - javascript

我正在使用使用Visual Studio模板创建的Web表单应用程序。模板具有一个内容占位符,该占位符被访问的任何页面的内容替换。有问题的页面有几个服务器控件,例如文本框,标签和按钮。当我单击我的更新按钮时,它可以正常工作,这些值会回传并更新数据库。我想在所有子页面上创建通用的登录提示。我的导航栏(位于我的母版页中)具有引导程序设置。我在导航栏中添加了一个下…

Telerik单选按钮所需的字段验证器 - javascript

如何设置Telerik单选按钮所需的字段验证器?我想在按钮单击“ BtnSave”上设置必填字段验证器吗?请帮忙!<telerik:RadButton ID="radio_male" runat="server" ToggleType="Radio" AutoPostBack="fa…

用symfony隐藏树枝中的表格行 - javascript

我正在开始编码。我正在使用Symfony 3.3我想用复选框隐藏(并显示)表上的a或某些特定行。我尝试使用javascript和jquery。我希望隐藏的行保持隐藏状态。我不知道该怎么做。这是我的树枝{% block body %} <div class="container"> <h3>List of produ…

表单不提交或按钮提交不起作用 - javascript

据我所知,此代码必须有效,但是我编码时却无效问题在于该表单未提交。我该如何解决?选中时,我什至没有得到复选框的值。<table id="example" class="display" cellspacing="0" width="100%"> <thead&g…