我想创建一个简单的用户控件,支持使用控件 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/