Если проблема состоит в том, чтобы просто выяснить, какой элемент HTML вызвал событие, то это легко - он передается вам в аргументах события. (Конечно, вы можете получить его родительский элемент.) Поэтому, если я правильно понимаю проблему, у вас есть функции JavaScript, ссылающиеся на некоторые элементы управления, которые дублируются?
Не думаю, что здесь есть какое-то волшебное решение: нужно просто сделать идентификаторы уникальными. Если вы не используете серверные элементы управления (которые обрабатывают это для вас автоматически), то вы можете использовать какой-то сгенерированный на стороне сервера префикс или суффикс, например.
<input id="<%= ParentControlId %>_mytextbox" type="text" />
где ParentControlId
- это уникальный идентификатор родительского элемента управления (вы можете просто использовать Control.ID, если не возражаете против длинных идентификаторов).
Конечно, вы должны попытаться повторно использовать ваши функции JavaScript, а не дублировать их для каждого экземпляра элемента управления. Если вы используете подход сгенерированного идентификатора сервера, вам придется передавать все идентификаторы. Если вы используете префиксный подход, вы можете просто передать префикс.