如何将回调函数分配给asp:HyperlinkField?

3
我希望用户点击一个链接(由asp:HyperlinkField生成),并调用服务器上的方法,而不是将用户重定向到其他地方。 有人知道如何做到这一点吗?
谢谢, 马特
4个回答

1

HyperLinkField 用于在数据绑定控件中生成简单的超链接。相反,您可以使用 ButtonField。或者您可以使用 TemplateField 定义自己的链接。

下面是一个生成具有服务器端事件的链接列的示例:

<asp:templatefield headertext="Link Column">
    <itemtemplate>
      <asp:LinkButton ID="myLink" 
            CommandName="MyLinkCommand" 
            CommandArgument='<%#Bind("TableID") %>'
            runat="server">My Link</asp:LinkButton>
    </itemtemplate>
</asp:templatefield>

在代码后面:

protected void YouGridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "MyLinkCommand")
    {
        // Do stuff
    }
}

1

请使用asp:LinkButton,除非你有特殊原因需要使用asp:Hyperlink?


没有原因,只是不想让它看起来像一个按钮。谢谢。 - Matt

1
我会使用asp:CommandField或asp:ButtonField代替并且使用ButtonType=Link - 这将看起来与你的链接字段相同,然后您可以在您的网格中处理OnRowCommand事件来运行您的代码。

是的,你说得对,不需要添加模板列(就像我的答案一样),这个很容易 :) - Canavar

0
为什么不使用ButtonField,然后将ButtonType属性设置为Link呢?这样它看起来就像超链接。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接