Добавление списка пользовательских элементов управления с кнопками в PlaceHolder - нет события? - PullRequest
0 голосов
/ 21 мая 2009

Я хочу использовать «сложные» пользовательские элементы управления с более чем одним элементом управления внутри. Это тот же элемент управления, который я буду использовать в списке, и у меня уже есть элемент управления PlaceHolder.

Я могу добавить элемент управления с помощью LoadControl (путь к .ascx) - без проблем.

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

Но при добавлении LinkButtons у меня возникают проблемы / проблемы.

Когда я нажимаю кнопку, я получаю «submit» страницы, отображающей элементы управления; но собственное событие кнопки элемента управления, похоже, не срабатывает (или, по крайней мере, сначала запускается PageLoad на родительской странице?) - я не могу понять, где происходит мое событие или где искать имя / идентификатор или параметр для этого кнопка.

Почему или что я здесь не так делаю?

Теперь я сделал «фальшивую кнопку», используя больше метку с «жестко закодированным HREF» с идентификатором в URL, но я хотел бы узнать, какое событие мне нужно отловить и где или как инициировать кнопка, потому что я хочу иметь возможность использовать элементы управления «ASP.NET по умолчанию» для этих пользовательских элементов управления (надеюсь, без слишком большого количества лоскутного кодирования) ...

1 Ответ

1 голос
/ 21 мая 2009

Единственная причина, по которой события «теряются», заключается в том, что ваши элементы управления не воссоздаются таким образом, что ASP.Net может связать событие с элементом управления после обратной передачи. Это достигается за счет использования свойства ID.

Другими словами, вы делаете одну из трех вещей неправильно:

1) Вы назначаете идентификаторы кнопок ссылок по-разному на этапе создания в Init после обратной передачи

2) Вы создаете свои кнопки ссылок динамически с помощью кода, но вы делаете это после фазы инициализации жизненного цикла страницы, чтобы ваши элементы управления не участвовали в ViewState.

3) Вы повторно привязываете источник данных родительского элемента управления, содержащий кнопки ссылок на каждой обратной передаче. Используйте if (!IsPostBack), чтобы не связывать его каждый раз.

Не видя ваш код, я, к сожалению, не могу дать ничего более конкретного, чем это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...