C# 可单击的GridViewRow覆盖子超链接

C# 可单击的GridViewRow覆盖子超链接,c#,asp.net,gridview,hyperlink,C#,Asp.net,Gridview,Hyperlink,因此,我使用以下方法使GridView的每一行都可单击: protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.Attributes["OnClick"] = Page.ClientScript.GetPostBackEventReference(G

因此,我使用以下方法使GridView的每一行都可单击:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        e.Row.Attributes["OnClick"] = Page.ClientScript.GetPostBackEventReference(GridView1, "Select$" + e.Row.RowIndex.ToString());
    }
}
因此,当我单击一行时,程序通过GridView.SelectedRowChanged方法重定向到第1页

每行还包含一个超链接,该超链接应该重定向到第2页。但是,单击超链接只会重定向到第1页,因为SelectedRowChanged事件会首先触发


单击超链接时,如何重定向到正确的页面?它是否像制作超链接按钮和执行Click方法一样简单?

您必须检查目标控件是否为锚定,忽略回发执行。检查以下实例

<div onclick="if(event.target.tagName != 'A') { alert('Foo'); }" style="width: 100px; height: 100px;">
    <a href="Default.aspx">Home</a>
</div>

结果表明,制作超链接链接按钮并执行单击方法非常简单。谁知道呢