Web/ASP.NET
ScriptManager.RegisterStartupScript, defaultbutton 사용 시 주의할 점
ImJay
2023. 11. 14. 13:35
반응형
<form runat="server" id="form1" defaultbutton="search_btn">
폼에 defaultbutton option 을 설정할 경우,
<script>
//<![CDATA[
theForm.oldSubmit = theForm.submit;
theForm.submit = WebForm_SaveScrollPositionSubmit;
theForm.oldOnSubmit = theForm.onsubmit;
theForm.onsubmit = WebForm_SaveScrollPositionOnSubmit;
WebForm_AutoFocus('search_btn');Sys.Application.add_init(function() {
$create(Sys.UI._UpdateProgress, {"associatedUpdatePanelId":null,"displayAfter":0,"dynamicLayout":true}, null, null, $get("HourGlass_UpdateProgress"));
});
//]]>
</script>
해당 스크립트가 자동으로 추가된다.
ScriptManager.RegisterStartupScript(Page, typeof(Page), "Script", "SyncTab();", true);
따라서 위 태그를 서버에서 RegisterStartupScript 와 함께 사용할 시,
<script>
//<![CDATA[
SyncTab();
theForm.oldSubmit = theForm.submit;
theForm.submit = WebForm_SaveScrollPositionSubmit;
theForm.oldOnSubmit = theForm.onsubmit;
theForm.onsubmit = WebForm_SaveScrollPositionOnSubmit;
WebForm_AutoFocus('search_btn');Sys.Application.add_init(function() {
$create(Sys.UI._UpdateProgress, {"associatedUpdatePanelId":null,"displayAfter":0,"dynamicLayout":true}, null, null, $get("HourGlass_UpdateProgress"));
});
//]]>
</script>
defaultbutton 옵션도 후위 스크립트에 추가되기 때문에, 둘이 함께 실행되어 의도치 않은 결과가 나올 수 있다.
webForm 에서 어? 왜 안되지? 하는 것에 99%는 UpdatePanel 과 ScriptManager 문제인듯 하다.
반응형