QnA
사용언어
(칠해주세요) => (C#,VB) |
사용툴 (VS) : 2010 |
운영체제 (OS) : |
상세언어(칠해주세요.)
=> 1) ASP.NET, 2) ASP.NET MVC, 3) ASP.NET AJAX |
Master file 사용 합니다.
CS file =====================================
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
~~~
}
else
{
string Script = "<script language=javascript type=text/javascript>postback_init();</script>";
this.RegisterClientScriptBlock("xxxxxxxxOnStart", Script); ===> 1
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "init", Script); ===> 2
}
aspx file =======================================
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="server">
<script language="javascript" type="text/javascript">
function postback_init() {
if (document.getElementById("<%=txtGubun.ClientID%>").value == '1')
{
new_field();
}
if (document.getElementById("<%=txtGubun.ClientID%>").value == '2')
{
move_field();
}
if (document.getElementById("<%=txtRefill.ClientID%>").value == '11')
{
auto_bank();
}
if (document.getElementById("<%=txtRefill.ClientID%>").value == '12')
{
auto_card();
}
}
function new_field()
{
document.getElementById('new_item').style.display = '';
document.getElementById('move_item').style.display = 'none';
document.getElementById("<%=txtGubun.ClientID%>").value = '1';
}
function move_field()
{
document.getElementById('new_item').style.display = 'none';
document.getElementById('move_item').style.display = '';
document.getElementById("<%=txtGubun.ClientID%>").value = '2';
}
~~~~~
실행을 해보면 'postback_init' 이(가) 정의되지 않았습니다. 라는 오류가 나옵니다. ==> 1, 2 모두
데이터를 입력후 처리버튼을 누를때 입력값 오류인경우 postback 발생하며
그 때 div 사용하는 부분이 화면에서 초기값으로 변경이 그 부분을 입력값으로 처리하고자
만든 부분인데... 오류가 발생 하네요.
어느부분이 문제이죠?
소스보기 내용입니다. ================================
</style></head>
<body>
<form name="aspnetForm" method="post" action="Request_201.aspx" id="aspnetForm">
<div>
<input type="hidden" name="__eo_obj_states" id="__eo_obj_states" value="" />
<input type="hidden" name="__eo_sc" id="__eo_sc" value="" />
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTMyMjU5MDExMw9kFgJmD2QWAmYPZBYCAgMPZBYCAgcPZBY
~~~~~~
</div>
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['aspnetForm'];
if (!theForm) {
theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.xxxxonsubmit || (theForm.xxxxonsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
<script src="/WebResource.axd?d=sVHlwc5KrFNYYhcRScWdfzRNYjjmzqDn4fIDxiGgjES8AcIMjYPJU6DHTOLWeJpbhgWbx-UPXYHKnNhEH6rjvdhEd7nO9U0Jb36L3JjmoWQ1&t=635586488020000000" type="text/javascript"></script>
<script language=javascript type=text/javascript>postback_init();</script> ==> 1600 라인중 116라인에..소스보기로 앞부분에
<script type="text/javascript">
//<![CDATA[
if (typeof(EO1531)=='undefined'){EO1531=new Object();EO1531.f=new Object();EO1531.g=new Object();EO1531.r=new Object();EO1531.g.a=EO1531.r;EO1531.r.getVersion=function(){return "15.31";};EO1531.r.getLoader=function(){return typeof(EO1531.g.d)!='undefined'?EO1531.g.d:null;};EO1531.r.getNS=function(){return "EO1531";};};
EO1531.r.product='EO.Web';
EO1531.r.form='aspnetForm';
EO1531.r.autoInit=false;
EO1531.r.handlerUrl='/eo_web.ashx';
//]]>
</script>
첫댓글 이런 경우는 랜더링 된 html 소스보기를 통해서 호출이 어디서 일어났는지 확인하시면 됩니다.
저 스크립트를 호출하는 부분이 Page_load 단락에 있습니다.
소스보기상 앞부분에 나오네요.
추가부분 파란색 으로 표시했습니다.
함수 호출이 html로 먼저 생성된게 아닌가요? 소스보기를 보여주심이.
소스보기로 앞부분에 위치합니다.
약 1600 라인 중 116 라인에,....
소스보기 첨부 했습니다. 앞부분만...
postback_init(); 함수 호출하는 부분만 보이는군요. postback_init() 함수 코딩한게 그 위에 미리 기술되어 있어야지요.
aspx 파일의 ContentPlaceHolder2 부분에 스크립트를 기술했거든요.
Master File을 사용하는 내용이라
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="server">
<script language="javascript" type="text/javascript">
function postback_init() {
아래 처럼, 페이지가 다 뜨고 나서 자바스크립트 함수를 호출하는건 어떨까요?
Page.ClientScript.RegisterClientScriptBlock(
this.GetType(),
"onload",
"window.onload = function(){ clock(); }",
true
);