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