gpt4 book ai didi

c# - BulletedList onClick 未触发

转载 作者:行者123 更新时间:2023-12-03 03:05:43 25 4
gpt4 key购买 nike

呃,这让我发疯

我正在尝试从项目符号列表构建动态菜单,大多数菜单项都是普通链接,但是注销按钮需要执行一些清理代码。

我一生都无法触发 BullettedLists onclick 事件。BulletedList 位于用户控件内部(如果这有区别的话)

有什么想法吗?或者 - 有什么更好的替代解决方案的想法吗?

下面的代码

项目符号列表

<asp:BulletedList OnClick="menu_Click" runat="server" CssClass="MainMenu" ID="loggedInMenu" DisplayMode="HyperLink"  />  

添加元素

loggedInMenu.Items.Add(new ListItem("Logout", ""));

点击处理程序

protected void menu_Click(object sender, BulletedListEventArgs e)
{

user.logout();
Response.Redirect("Default.aspx");
}

最佳答案

您使用了错误的DisplayMode为您BulletedList控制。您应该使用 DisplayModeLinkButton 。当您使用DisplayMode.HyperLink时:

Users can click links to move to another page. You must provide a target URL as the Value property of individual items.

这来自MSDN docs对于这个控制。 (大约是页面下方的 3/4。)

当您使用BulletedList时控制在HyperLink模式,你的ListItem的值是您要导航到的 URL。因此,您的静态页面 HTML 控件将使用 ListItem.Value作为href <a> 的属性标签。

以下是当您使用 HyperLink 的 DisplayMode 时 HTML 标记的样子(它是带有 href 的普通旧式 HTML anchor 标记):

<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当我单击列表项时会触发事件处理程序。

我希望这有帮助!!

关于c# - BulletedList onClick 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3495348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com