Мой пользовательский веб-элемент управления (ascx)
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="CustomAutoCompleteTextBox.ascx.cs" Inherits="UserControls_CustomAutoCompleteTextBox" ClientIDMode="Static" %>
<asp:TextBox ID="AutoCompleteTextBox" runat="server" />
Реализация на веб-странице EquipmentMove
<%@ Page Language="C#" MasterPageFile="~/SiteMasterPage.master" AutoEventWireup="true" CodeFile="EquipmentMove.aspx.cs" Inherits="Equipment_EquipmentMove" %>
<Custom:AutoCompleteTextBox runat="server" ID="HardwareSNTextBox1"
OnCloseFunction="TestOnClosefunction"
OnFocusFunction="testme"
OnKeyUpFunction="EquipmentSearchCheckHardwareSNLength"
PostbackURL="EquipmentMove.aspx/HardwareSNAutoComplete"
SpellCheck="false" />
Во время выполнения идентификатор клиента элемента управления Custom: AutoCompleteTextBox становится «HardwareSNTextBox1_AutoCompleteTextBox». Результирующая разметка:
<input name="ctl00$cpBody$HardwareSNTextBox1$AutoCompleteTextBox" type="text" id="ctl00_cpBody_HardwareSNTextBox1_AutoCompleteTextBox" class="ui-autocomplete-input" autocomplete="off">
Если я хочу написать javascript с именем «TestOnClosefunction» на веб-странице EquipmentMove, и я хочу получить доступ к этому элементу управления, но с использованием первоначально введенного идентификатора «HardwareSNTextBox1» ине «HardwareSNTextBox1_AutoCompleteTextBox» это вообще возможно?
Редактировать: Я полагаю, если разработчик, использующий этот пользовательский веб-элемент управления, проверяет разметку для фактического идентификатора при написании своих js, тогда это может сработать. Не очень интуитивно, хотя.