Как найти, где у меня есть дубликат контрольного идентификатора (C #)

StackOverflow https://stackoverflow.com/questions/1406416

Вопрос

Я создаю огромное количество динамических элементов управления, и для всего, что должно иметь назначенный идентификатор, я назначаю его, используя гарантированную уникальную переменную (если только 64 элемента управления не переполняются).

Теперь у меня есть проблема. У меня есть дубликат элемента управления где-то , и я не могу обнаружить, где он добавлен или что-то еще, потому что это происходит только после Page_Load, что означает, что это происходит из моего собственного кода, когда выдается исключение ( Я думаю на как Render или какой-то другой внутренней функции).

Имя элемента управления - "ctlXXX" где XXX - это число (прямо сейчас, всегда 244), этот идентификатор элемента управления не сделан мной. Это делается ASP.Net автоматически (так как ни один из моих идентификаторов не имеет префикса ctl). Так как мне исправить эту ошибку, которую я не вижу? Может кто-нибудь предложить способы обнаружения моей ошибки (я действительно надеюсь, что это не ошибка в ASP.Net)?

Кроме того, я недавно получил сообщение об ошибке, используя функцию «Копировать», которая будет выполнять копирование для каждого элемента управления по отдельности, а затем сбрасывает все элементы управления, чтобы иметь либо уникальный идентификатор, либо значение NULL, поскольку эта часть происходит перед элементами управления. загружаются в пользовательский элемент управления, который является потомком Panel)

Кто-нибудь может дать мне совет, как найти эту ошибку?

Это было полезно?

Решение

Я думаю, что вы хотите взглянуть на INamingContainer интерфейс. Я думаю, что это решит вашу проблему, но вам нужно будет создать новый класс управления для этого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top