0

リピーターを使用してグリッドを設定する ASP.NET ページがあります。最終的には 12 ほどの列があり、そのうちの 1 つはポストバックを実行する (行を削除する) リンクボタンです。行の残りの部分をクリック可能にして、実行時に設定した指定の URL に移動します。

リピーターの行のコードは次のとおりです。

<tr class='normal' onmouseover="this.className='highlight'" onmouseout="this.className='normal'" 
                        onclick="location.href='<%#DataBinder.Eval(Container.DataItem, "url") %>';">
                        <td><%# DataBinder.Eval(Container.DataItem, "parcel")%></td>
                        <td><%# DataBinder.Eval(Container.DataItem, "address")%></td>
                        <td><%# DataBinder.Eval(Container.DataItem, "unitName")%></td>
                        <td><%# DataBinder.Eval(Container.DataItem, "countyName")%></td>
                        <td><asp:LinkButton CommandName="remove" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "parcel")%>' ID="LinkButton0" runat="server">Remove</asp:LinkButton></td>
                    </tr>

ご覧のとおり、onclick でユーザーを指定された URL に直接ナビゲートし、LinkBut​​ton イベントは親リピーターの ItemCommand ハンドラーで処理されます。リンクボタンをクリックすると、両方がクビになり、すべてが崩壊します。linkbutton または linkbutton セルに onclick イベントが適用されないようにする方法はありますか? これを行うために私が考えることができる唯一の確実な方法は、各テーブルセルの onclick を設定することですが、特にリピーターで and を使用しているため、これはかなり醜いでしょう。

4

1 に答える 1

0

TR クリック イベントが発生しないように、クリック イベントの伝達をキャンセルする onclick イベントを LinkBut​​ton に追加できます。jQuery/MooTools 以外でこれを使用してからしばらく経ちましたが、これでうまくいくはずです。

onclick="window.event.cancelBubble=true;"

<asp:LinkButton CommandName="remove" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "parcel")%>' ID="LinkButton0" runat="server" onclick="window.event.cancelBubble=true;">Remove</asp:LinkButton>
于 2010-05-26T19:23:39.520 に答える