私のasp.netページでは、ダーティコントロールを制御する必要があります。私はjavascriptが得意ではないので、インターネットでそれを行うための解決策を見つけました:
<script type="text/javascript" language="javascript">
//Demo of completely client side dirty flag.
function setDirty() {
document.body.onbeforeunload = showMessage;
//debugger;
document.getElementById("DirtyLabel").className = "show";
}
function clearDirty() {
document.body.onbeforeunload = "";
document.getElementById("DirtyLabel").className = "hide";
}
function showMessage() {
return ""
}
function setControlChange() {
if (typeof (event.srcElement) != 'undefined') {
event.srcElement.onchange = setDirty;
}
}
document.body.onclick = setControlChange;
document.body.onkeyup = setControlChange;
window.onunload = function (sender, eventArgs) {
if (window.opener != null) {
window.opener.ClearBlocker();
if (window.opener.TempClientReturnFunction != null)
window.opener.TempClientReturnFunction = window.opener.ReturnFunction;
}
}
</script>
しかし、Dirty Controls を制御する必要があるページが 7 ページほどある場合、冗長なコードが多すぎます。関数を呼び出すことができる場所からクラス/ライブラリを作成する方法はありますか、それとももっとスマートな方法がありますか?