Вы используете неправильный DisplayMode
для вашего BulletedList
элемента управления.Вы должны использовать DisplayMode
из LinkButton
.При использовании DisplayMode.HyperLink
:
Пользователи могут щелкать ссылки для перехода на другую страницу.Вы должны указать целевой URL-адрес в качестве свойства Value отдельных элементов.
Это из Документов MSDN для этого элемента управления.(Это примерно 3/4 пути вниз по странице.)
Когда вы используете элемент управления BulletedList
в режиме HyperLink
, значением вашего ListItem
является URL, по которому вы переходите,Поэтому элементы управления HTML вашей статической страницы будут использовать ListItem.Value
в качестве атрибута href
тега <a>
.
Вот как выглядит HTML-разметка, когда вы используете DisplayMode из HyperLink (это простой старый HTMLякорный тег с href):
<li><a href="1">One</a></li>
Но так как вы хотите отправить обратно, вы должны установить DisplayMode
вашего BulletedList
элемента управления на LinkButton
.Когда вы сделаете это, вы включите обратную передачу на свою страницу, и ваш обработчик событий перехватит событие.Затем вы можете обработать щелчок соответствующим образом.Аргумент события, который передается (типа BulletedListEventArgs
), будет иметь свойство Index
, и оно сообщит вам, по какому элементу в вашем списке была нажата кнопка.
Вот обновленный код .aspx, который я использовал:
<asp:BulletedList ID="bullet" runat="server" DisplayMode="LinkButton"
onclick="bullet_Click">
<asp:ListItem Text="One" Value="1">One</asp:ListItem>
</asp:BulletedList>
Все остальное такое же, кроме DisplayMode
, для которого установлено LinkButton
.Когда я использую это, тогда мой обработчик событий bullet_Click
запускается, когда я щелкаю элемент списка.
Надеюсь, это поможет !!