单击子控件单击时如何停止父gridview事件?

时间:2013-01-03 06:08:30

标签: javascript asp.net

我在GridView中有linkbutton。 GridView具有客户端事件 - rowselect。单击LinkBut​​ton时,会触发客户端事件(rowselect)。我想在单击LinkBut​​ton时停止触发rowselect客户端事件。

任何解决方案?

例如。

GridView有3行,两列

Column 1 ---- Column 2 [LinkButton]
AAAAAA   ---- test.aspx?ID=001
BBBBBB   ---- test.aspx?ID=002
CCCCCC   ---- test.aspx?ID=003

Client Side JavaScript (fired on GridView row selection)
function DisplayData(gridview row)
{
  //get data from selected row.
}

如果选择行的第一列,则调用客户端事件,即可。但是当点击LinkBut​​ton时,重定向到test.aspx ..在客户端事件上没有火。

2 个答案:

答案 0 :(得分:0)

您可以使用event.stopPropagation来停止事件传播。对于不支持e.stopPropagation()的旧浏览器,您可以使用e.cancelBubble = true

document.getElementById("<%= yourRadDatePickerID.ClientID %>").onclick = function(e) {

    if(e && e.stopPropagation ) 
    {
        e.stopPropagation();
    } 
    else
    {
          e = window.event;
          e.cancelBubble = true;
    }
}

答案 1 :(得分:0)

LinkButton添加点击处理程序,以防止事件冒泡。使用event.stopPropagation()。对于较旧的IE浏览器,请使用event.cancelBubble = true

<asp:LinkButton runat="server" OnClientClick="cancelClick(event)" ... />
function cancelClick(e) {
    if (e.stopPropagation) e.stopPropagation();
    e.cancelBubble = true;
}