可点击的GridViewRow覆盖子HyperLink

时间:2009-11-18 16:20:45

标签: 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(GridView1, "Select$" + e.Row.RowIndex.ToString());
    }
}

因此,当我单击一行时,程序会通过GridView.SelectedRowChanged方法重定向到Page1。

每一行还包含一些应该重定向到Page2的HyperLink。但是,单击HyperLink仅重定向到Page1,因为SelectedRowChanged事件首先触发。

单击HyperLink时如何重定向到正确的页面?是否像制作HyperLinks LinkBut​​tons和执行Click方法一样简单?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

事实证明,它就像制作HyperLinks LinkBut​​tons并执行Click方法一样简单。谁知道?