我创建了一个具有 JavaScript 函数的 ASP.NET 用户控件:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="TestControl.ascx.cs" Inherits="BingTranslator.Web.WebUserControl1" %>
<script type="text/javascript">
function example() {
alert('<%=ExampleButton.ClientID%>');
return false;
}
</script>
<asp:Button ID="ExampleButton" runat="server" Text="Example"/>
我希望在用户将鼠标移动到按钮上时调用“example”函数,因此我为按钮添加了属性:
ExampleButton.Attributes.Add("onmouseover", "example()");
它可以正常工作,但当我需要在同一页上使用两个控件时,我遇到了问题。ASP.NET会生成两个具有相同名称的函数,这是什么问题:
<script type="text/javascript">
function example() {
alert('TestControl1_ExampleButton');
return false;
}
</script>
<input type="submit" name="TestControl1$ExampleButton" value="Example" id="TestControl1_ExampleButton" onmouseover="example()" />
<script type="text/javascript">
function example() {
alert('TestControl2_ExampleButton');
return false;
}
</script>
<input type="submit" name="TestControl2$ExampleButton" value="Example" id="TestControl2_ExampleButton" onmouseover="example()" />
任何按钮上的onmouseover事件都会始终调用第二个函数。我能通过直接向onmouseover属性添加客户端ID的JavaScript代码来解决此问题。
ExampleButton.Attributes.Add("onmouseover", "[Here will be javascript code]");
但是对我来说,这不是一个很和谐的解决方案。请建议一下,我如何更好地解决这个问题。
附言:将会有更多的JavaScript代码,我只是为了举例添加了两个字符串。