Получение информации (по клику), которая использовалась для программной генерации элементов управления ASP - PullRequest
0 голосов
/ 15 июля 2009

Как можно получить информацию, которая использовалась для программной генерации элементов управления asp?

Например, я извлек DataTable пользовательских объектов из базы данных и организовал их на странице, перечисляя группировки, такие как список сотрудников непосредственно под работодателем для каждого работодателя. На странице я перечисляю имя пользователя каждого пользователя как LinkButton. Когда я щелкаю одного из этих сотрудников, я хочу перенаправить страницу (что легко) и установить переменную сеанса для идентификатора пользователя выбранного пользователя (что кажется не так просто). Как я могу вернуть это значение UserId обратно? Эти элементы не жестко запрограммированы с хорошими именами (так как они генерируются в цикле for each).

Код из комментария ниже:

Dim lnkbtnPm As New LinkButton ' is my link button. '
lnkbtnPm.Text = pmDr.Item("Username") ' where pmDr is my datarow. '
lnkbtnPm.CommandArgument = pmDr.Item("UserId")     
lnkbtnPm.CommandName = "CommandNameHere"
panelToAddControlTo.Controls.Add(lnkbtnPm) 

Спасибо:)

1 Ответ

2 голосов
/ 15 июля 2009

Я думаю, для этого вы бы использовали свойства CommandName и CommandArgument LinkButton. Назначьте идентификатор пользователя как CommandArgument и подходящую строку как CommandName и подключите событие Command к обработчику события:

Sub LinkButton_Command(sender As Object, e As CommandEventArgs) 
    ' e.CommandArgument will contain the user id '
End Sub

Обновление

Проблема в том, что обработчик событий никогда не подключается. Используйте AddHandler для этого:

Dim lnkbtnPm As New LinkButton 
lnkbtnPm.Text = pmDr.Item("Username") ' where pmDr is my datarow. '
lnkbtnPm.CommandArgument = pmDr.Item("UserId")     
lnkbtnPm.CommandName = "CommandNameHere"
AddHandler lnkbtnPm.Command, AddressOf LinkButton_Command
panelToAddControlTo.Controls.Add(lnkbtnPm)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...