.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" />
 
 


+ Recent posts