Я создал пользовательский элемент управления ASP.NET с функцией javascript:
<%@ 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"/>
Я хочу вызвать «пример» функции, когда пользователь перемещает мышь к кнопке, поэтому я добавил атрибут для кнопки:
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 для любой кнопки будет вызывать вторую функцию.Я могу решить эту проблему, добавив код сценария java с идентификатором клиента непосредственно в attriburte onmouseover.
ExampleButton.Attributes.Add("onmouseover", "[Here will be javascript code]");
Но это не очень гармоничное решение, как для меня.Посоветуйте, пожалуйста, как мне лучше решить эту проблему.
PS Там будет гораздо больше кода Javascript, я добавил, например, две строки сверху.