반응형
var globalVar = "0";
a();
b();
function a(){
            $.ajax({
                type: "POST",
                url: "a.aspx/FunctionName",
                data: "{'_work_code':'" + _work_code + "','_regdate':'" + _reg_date + "'}", 
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    var _rst = msg.d;
                    globalVar = "2";
                }
            });
}
function b(){
            globalVar = "1";
}


 
위와 같이 선언된 jQuery함수에서 자바스크릅트의 전역변수를 선언하면
Post로값을 넘겨서인건지(정확히는 모름)  전달에 지연된다.
a()가 먼저 호출되었음에도 불구하고 globalVar의 값은 2가 아닌 1로 정의 되버린다.
이를 막기위해 한가지를 추가해줘야한다.

 $.ajax({
                type: "POST",
                url: "a.aspx/FunctionName",
                async:false, 
                data: "{'_work_code':'" + _work_code + "','_regdate':'" + _reg_date + "'}", 
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    var _rst = msg.d;
                    globalVar = "2";
                }
            });

강조된 부분을 추가해주면 자바스크립트의 전역변수가 제대로 전달된다. 
반응형
jQuery를 이용하여 동일한 페이지(a.aspx/ a.aspx.cs)상의 서버함수에 접근하는 방법이다.
            $.ajax({
                type: "POST",
                url: "a.aspx/FunctionName",
                data: "{'_work_code':'" + _work_code + "','_regdate':'" + _reg_date + "'}", 
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    var _rst = msg.d;
                }
            });
//---------------------------------------------
 Post방식으로 서버함수에 접근하는 방법이다.
1) url: "a.aspx/FunctionName",
 이부분에서 a.aspx는 접근해야할 함수가 존재하는 페이지(스크립트가 선언된 페이지와 동일하다.)
/뒤의 FunctioinName는 서버스크립트에 존재하는 함수명이다.
2) data: 부분은 FunctionName에 전달해야할 파라미터들이다.
 '_work_code':'" + _work_code + "' 에서 앞부분이 서버에 선언된 파라미터명이고 반드시 동일한 이름으로 작성되어야하며
서버함수의 파라미터 갯수와 정확히 일치해야한다. 뒷부분은 파라미터에 전달할 클라이언트의 값이다.
3)contentType: , dataType: 이것들은 선언해줘야할 타입들인데 그다지 손댈일이 없으므로 패스
4) success: function (msg) {
서버함수로 전달된 값이 계산을 통해서 반환된다면 msg로 값이 넘어온다.
msg.d로 값을 확인할 수 있으며 배열로 넘어오는 경우에는 msg.d[0], msg.d[1]과 같은 방식으로 확인하면 된다. 
반응형
1.먼저 [using System.Collections.Specialized;]이 선언돼있어야 한다.
2. QueryString을 처리할 함수를 만든다.
        public NameValueCollection getQueryStringPrms(string url)
        {
            string keyValue = string.Empty;
            NameValueCollection collection = new NameValueCollection();
            string[] querystring = url.Split('&');
            if (querystring != null && querystring.Count() > 0)
            {
                for (int i = 0; i < querystring.Count(); i++)
                {
                    string[] pair = querystring[i].Split('=');
                    collection.Add(pair[0].Trim('?'), pair[1]);
                }
            }
            return collection;
        } 
3. [WebMethod]에서 getQueryStringPrms을 호출한다.
        NameValueCollection collection = comm.getQueryStringPrms(HttpContext.Current.Request.UrlReferrer.Query);
        
         string temp = HttpContext.Current.Server.UrlDecode(collection["code"]);
 
반응형
먼저 부모창에 function test(){}이라는 함수가 있다고 가정한다.

1)팝업창일경우
opener.test();
2)iframe일경우 
parent.test(); 
와 같이 호출하면 된다. (무지쉽지?) 
3) 부모창에서 iframe내 함수접근
   var ifr = document.getElementById('iframeID');
    ifr.contentWindow.function_name();
부모창에서 'iframeID'이라는 iFrame에 지정된 페이지의 function_name()함수에 접근하는 방법이다.

4) <a href='www.url.com' target='_parent'>link</a>으로 지정해도 됨. 물론 자바스크립트를 제어하는 것은 아니라서
     parent.location.href='www.url.com';과 동일한 효과만 볼수 있음. 페이지 이동에 국한하여 사용할 수 있는 태그이다.
     기초적이고 간단한 것인데 종종 잊어먹곤 하니 유의할 것.


반응형
function get_QueryString(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null)
        return "";
    else
        return decodeURIComponent(results[1].replace(/\+/g, " "));
}
 
반응형
1.[WebMethod] - > [WebMethod(EnableSession=true)]
2. HttpContext.Current.Session["sessionID"]

 
반응형
_Val의 값중에 '<BR>'의 값을 개행문자로 변환할때 유용한 방법이다.

_Val = _Val.split("<BR>").join('\r\n');

출처 : http://blog.naver.com/troopa102?Redirect=Log&logNo=120054695785 
반응형
마스터페이지로 사이트를 구성하다보면 TextBox에 엔터키를 입력했을 경우 엉뚱한 동작이 발생하는 경우가 있다.
내경우에는 마스터페이지에 올려놓은 로그아웃버튼이 동작을 한다.

해결방법은 두가지가 있다.

1.자바스크립트로  if(event.keyCode == 13) return false; 를 심어주는 방법이다.
내경우엔 TextBox1.Attributes["onKeyPress"] = "if(event.keyCode == 13) return false;";라고 추가했다.

그러나 1의 방법은 한계가 있다. 모든컨트롤을 일일이 등록해야하고 html컨트롤은 별도로 추가해야하는 불편함이 있다.

2. 다른방법은 마스터페이지에 defaultbutton속성을 이용하는 것이다.
먼저  아래와 같이 서버컨트롤 버튼을 추가한다. 물론 <div>로 감싸서 화면에는 보이지 않도록 한다.
<div style="display:none"><asp:Button ID="btnNull" runat="server" /></div> 
그리고 <form에  defaultbutton에 추가한 서버컨트롤 ID를 작성한다.
<form id="form1" defaultbutton="btnNull">

 
참고로 엔터키 입력할때마다 페이지리프래쉬가 일어나는 현상을 막기 위해서
마스터 페이지 최초로딩시 btnNull버턴의 onclick이벤트에 엔터키를 막는 1의 코드를 등록했다.
btnNull.Attributes["onclick"] = "return EnterKeyBlock();";
[EnterKeyBlock()]가 자바스크립트 함수로 1).의 자바스크립트를 기록해둔 것이다.
반응형
1)윈도우7(혹은비스타)에서는 iis설정이 과거와 많이 바뀌었다.
기본적으로 iis를 사용하기위해서는 추가설치를 해야한다. 프로그램설치메뉴에서 추가할 수 있다.
2)iis에서 asp.net버전을 바꾸는 방법은

    1. iis에서 [응용프로그램풀]로 접근한다.
    2. 설치된 사이트 리스트를 더블클릭하면 .Net Framework버전을 변경할 수 있다.

3) .Net Framework4를 사용하는 경우 iis에서 사이트 호출시
[PageHandlerFactory-Integrated" 처리기의 모듈 목록에 잘못된 모듈 "ManagedPipelineHandler"이(가) 있습니다]
이런 오류메세지가 나온다면  [C:\Windows\Microsoft.NET\Framework\v4.0.30319]로 접근한다.
 v4.0.30319디렉토리는 설치된 버전마다 다를 수 있으므로 자신에게 설치된 최신버전의 폴더를 찾아가면 된다.
 해당 폴더에 [aspnet_regiis.exe]라는 파일이 있다.
4)명령프롬프트에서 C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i 라고 입력한다.
  이는 최초설치시에 iis가 Framework최신버전을 인식하지 못하는 경우가 있기때문이다. 3)의 오류가 발생했다면
  iis에 최신Framework이 설치되지 않은 것이므로  aspnet_regiis.exe -i명령을 실행하여 iis에 다시설치하면 된다.
반응형
document.oncontextmenu=new Function('return false');  
document.ondragstart=new Function('return false');    
document.onselectstart=new Function('return false');

 

+ Recent posts