У меня есть пользовательский элемент управления (ascx), который содержит текстовое поле и счетчик на основе Javascript, чтобы позволить пользователю знать много символов, которые он оставил для ввода. В этом элементе управления находится следующее:
function GetTextBox() {
return document.getElementById("<%=txNotes.ClientID %>");
}
Это работало нормально, когда у нас был только один экземпляр этого пользовательского элемента управления на странице, но теперь мы должны поддерживать несколько. Как вы знаете, наличие нескольких экземпляров этого элемента управления на странице приведет к нескольким функциям GetTextBox (), только последняя из которых будет вызываться, несмотря ни на что. Для поддержки нескольких экземпляров я использую это:
if (!string.IsNullOrEmpty(TextBoxName) && !Page.ClientScript.IsClientScriptBlockRegistered(TextBoxName))
{
string Script = string.Format("function Get{0}Notes() {{ return document.getElementById(\"{1}\"); }}",
TextBoxName, txNotes.ClientID);
Page.ClientScript.RegisterClientScriptBlock(GetType(), TextBoxName, Script, true);
}
TextBoxName
является публичным свойством usercontrol, поэтому, если разработчик пропустит Employee, он сгенерирует функцию Javascript с именем GetEmployeeNotes()
. Это работает лучше, потому что теперь у нас может быть уникальная функция GetNotes ().
Однако мне не нравится, как это жестко запрограммировано в коде. Для этого мне нужно решение на основе разметки, которое не требует перестройки проекта на случай, если я захочу изменить Javascript. Кто-нибудь знает способ сделать это?
Редактировать : Я уже думал о создании отдельного файла .js, который я мог бы читать с помощью программы чтения текста, но это звучит немного странно, и я хотел бы избежать этого, если это вообще возможно .
Редактировать 2 : Ответ охранника ниже сработает, но я не хочу идти по этому пути по той причине, которую я дал под его ответом. Если никто не может предложить другой способ сделать то, что я хочу, я, скорее всего, отмечу его как ответ, поскольку технически он делает именно то, что я прошу.