1

シナリオ:onbeforeunload現在のページ (ASP.NET アプリケーション) から移動する前にメッセージを表示するために使用している .aspx ページに機能があります。このページは非常に複雑で、ポストバックが何度も発生しています。たとえば、複数のボタン、Rad Grid、Rad Window ポップアップなどがあります。

したがって、すべてのボタンonbeforeunloadがクリックされるたびに呼び出され、メッセージボックスが不必要に呼び出されます。onbeforeunloadメッセージが表示されないようにするために、null を呼び出しcancelEventているボタンのイベントで別の関数を呼び出しています。OnClientClickこれを行うことで、すべてのボタン ポスト バックが処理されますが、私が使用している RadGrid にはボタン列 (削除) があり、行がグリッドから削除されるたびに、最終的に を呼び出すグリッドがオフコースで更新されますonbeforeunload

onbeforeunloadRadGrid から何かを削除するときに、どのように防ぐことができるか教えてください。OnClientClick以下は、私が使用していてボタンに対して正常に動作しているコード スニペットですが、グリッドの削除列の助けが必要cancelEventです。

window.onbeforeunload = confirmExit;
function confirmExit() {
            window.event.returnValue = 'If you navigate away from this page any unsaved changes will be lost!';
}

function cancelEvent(event) {
            window[event] = function () {null}
}

<asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" CssClass="ActionButtons"
            ValidationGroup="vsDataEntry" OnClientClick="return cancelEvent('onbeforeunload')"/>
4

1 に答える 1

3

以下のようなことをしてみてください

<div onclick="return cancelEvent('onbeforeunload')">
    <telerik:RadGrid runat="server">
    </telerik:RadGrid>
</div>

説明

クリックイベントがトリガーされると、DOM内のすべての要素を介してバブルされます。Radgridをdiv内でラップし、そのdiv内でクリックが発生するたびに、onbeforeunloadを削除します。

于 2012-10-09T13:53:25.090 に答える