문자열을 숫자값으로 바꿀때 조심해야 한다.
아래와 같이 Parse를 쓰면 오류가 나면서 에러 처리되어버린다.
 string value = "ddd";  // 123 같은 숫자형값이 아닌경우
 int num = -1;
 num =  int.Parse(value);

 Console.WriteLine(num);
 Console.WriteLine("OK");


하지만, int.TryParse 를 쓰면 숫자형 문자인지도 체크도 되고,
int변환도 해서 예외처리 회피가 유리하다.
 string value = "ddd";  // 123 같은 숫자형값이 아닌경우
 int num = -1;
 if ( int.TryParse(id, out num) )
 {
    Console.WriteLine(num);
    Console.WriteLine("OK");
 }
 else
 {
    Console.WriteLine(value);
    Console.WriteLine("FAILED.");    
 }


휴...
.net은 이벤트 시점이 참 묘한거 같다.
그래서 jsp는 대부분 js를 이용해서 폼값을 바꿔서 submit해버리는데, 뭔가 짬뽕된느낌

결국은 client이벤트(자바스크립트)를 이용해서 처리했다.
.net은 id값이 html상 변경되니 ...
ClientID 속성과 Attributes.Add 속성으로 추가해서 쓰는걸 추천

RadioButton1.Attributes.Add("onclick", "alert('"+RadioButton1.ClientID +"')");



(1) 문제점

아래 그림을 예로 들면 "검색대상"에서

O 커뮤니티 : 제목, 본문, 첨부내용, 첨부파일명, 작성자, 작성부서
O 게시판    : 제목, 본문, 첨부내용, 첨부파일명, 작성자, 작성부서 , 프로젝트명, 플젝트PM, 시행사, 관련업체, 업무특성, 업무분류

필드를 검색하고 싶다.
오류를 회피하려면... 당연히 "검색대상"을 변경하면 검색범위를 "전체"로 초기화 해주도록 해야 한다.
(왜냐면... "게시판"에 "프로젝트명" 검색했다가...  커뮤니티를 클릭했는데 검색범위를 유지한상태로 한다면...값없는걸 요청하니 문제됨)






(2) 어라? .NET에서 이벤트 넣어서 , 해당 함수에서 check하게 했는데 ... 오류나네??
<asp:RadioButton ID="RadioButton1" OnCheckedChanged="함수명" runat="server" AutoPostBack="true" />


일단, 디자인의 컨트롤관련된건... .NET에서 지원하는 기능으로 처리했는데
문제가 되는건.. 이벤트 시점때문에 실제 검색쿼리를 날리는 xxxx.aspx.cs 보다...
해당 기능의 이벤트가 맨 마지막에 있기 때문에 문제가 되었다.

즉, 화면상으로는 기능이 동작했지만...
실제 로직부분에서는 검색범위를 전체로 초기화하지 않은 값이 존재한다는 사실... -ㅅ-


(3) 결국 자바스크립트이벤트로 처리
cs 쪽에서 Page_Load() 시점에

RadioButton1.Attributes.Add("onclick", "checkedObject('"+RadioButton_searchfield_total.ClientID +"')");

이런식으로 넣어주었다.
이런식으로 하면 실제 html로 output되면 다음과 같은 느낌으로
onclick이벤트값을 넣을수 있음

<INPUT id="ctl00_ContentPlaceHolder1_m_SelectType_KM_RadioButton1" onclick="checkedObject('ctl00_ContentPlaceHolder1_m_SelectType_KM_RadioButton_searchfield_total');" type="radio" CHECKED name="ctl00$ContentPlaceHolder1$m_SelectType_KM$common" value="10" />
 
 


다양한 환경에서 개발하면서, .net기반에서 구축한 디버깅 메시지를

System.Diagnostics.Debug.WriteLine ("test");

형태로 디버깅 메시지를 선언해서 사용하는데 , 도대체 어디서 보는것인지 ㄱ-
오리무중 ...
( 처음에는 jsp처럼 iis의 로그파일이 쌓이는것인가 했는데,
 그게 아니라 공유메모리 같은곳에 해당 메시지가 출력되어 api로 호출해서 보거나
 디버깅툴로 봐야 한다던가???? )




근데 우연찮게 인터넷에서 해당 메시지를 볼 수 있는 간단한 유틸이 있다고 했는데...
설치도 필요없고 참 심플하고 좋은듯...




Ps. 이제 xml 결과 출력 속도저하가 어디에 있는지 찾아봐야겠다 ㄱ-


+ Recent posts