2009-11-18 1 views
2

Так что я сделал каждую строку в GridView Clickable с помощью этого метода:кликабельны GridViewRow перекрывая ребенок HyperLink

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()); 
    } 
} 

Так что, когда я нажимаю на строку, программа перенаправляет Page1 с помощью метода GridView.SelectedRowChanged.

Каждая строка содержит также HyperLink, которая должна перенаправляться на страницу Page2. Однако нажатие на HyperLink перенаправляется только на страницу1, потому что событие SelectedRowChanged запускается первым.

Как перенаправить на правильную страницу при щелчке гиперссылки? Это так же просто, как создание гиперссылок LinkButtons и выполнение метода Click?

ответ

0

Оказалось, что это так же просто, как создание гиперссылок LinkButtons и выполнение метода Click. Кто знал?

1

Вы должны проверить, является ли целевой элемент привязкой якорем, игнорируйте выполнение обратной передачи. Проверьте следующий экземпляр.

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