如何识别使用 asp.net C# 单击的超链接的 ID
本文关键字:net 单击 asp 超链接 ID 何识别 识别 | 更新日期: 2023-09-27 17:57:12
我在网络表单的无序列表中的列表元素内有三个超链接。我想有一个函数来处理超链接的所有点击。所以我需要确定在代码隐藏文件中单击的超链接的 id,以便我能够使用 asp.net C# 正确处理单击响应。我想要一个函数来处理所有三个onclick
事件。在该函数中,我想确定单击的超链接的 id 和 id 的基础,代码的相应部分将在代码隐藏文件中执行。
<ul>
<li>
<a id="A5" href="#" onServerClick="Anchor_Click" runat="server">...</a>
</li>
<li>
<a id="A6" href="#" onServerClick="Anchor_Click" runat="server">...</a>
</li>
<li>
<a id="A7" href="#" onServerClick="Anchor_Click" runat="server">...</a>
</li>
</ul>
在代码隐藏文件中。
protected void Anchor_Click(Object sender, EventArgs e)
{
if(id=="A5")
some code
else if(id=="A6")
some code
else if(id=="A7")
some code
}
如果你不使用超链接(你可能不使用超链接,因为这些会触发对 TargetUrl 而不是帖子的获取),而是使用 LinkButton,你可以设置 CommandArgument。在OnClick上,您可以读取CommandArgument并将其解析为int。
如果链接位于具有数据源绑定的项中,则可以执行以下操作:
<asp:LinkButton ID="someLink" runat="server" CommandArgument="<%# ((YourObjectType)Container.DataItem).Id %>" OnClick="SomeLinkClicked" />
如果链接位于页面本身中而没有绑定,则应在链接的代码隐藏中设置 commandArgument,该链接应可直接访问。
//Markup
<asp:LinkButton ID="someLink" runat="server" OnClick="SomeLinkClicked" />
//code-behind
someLink.CommandArgument = yourObject.Id
在 OnClick 中,您可以执行此操作以获取 id 并触发需要为此 id 执行的任何操作:
protected void SomeLinkClicked(object sender, CommandEventArgs args) {
int id;
if (int.TryParse(args.CommandArgument, out id)) {
//Do something here with id
}
}
所有 UI 元素事件处理程序都提供两个参数 ASP.NET:
TheEventHandler(object sender, EventArgs e)
发送方表示触发事件的元素。在您的情况下,它将是超链接。因此,将其转换为适当的类型(或者甚至只是执行 Control 以更通用,然后获取 ID):
(sender as Control).ClientID
会给你所点击项目的客户端ID。
但是,这仅在元素runat="server"
时才有效 如果这是一个真正的超链接,就像在常规的旧<a>
标记中一样,则无法在服务器端捕获事件。