RadioButton을 2.0에서 서버컨트롤로 사용했다. <asp:DropDownList>의 선택값이 변할때 마다 RadioButton의 text값이 변하도록
해야했으나 문제는 <asp:DropDownList>이 MasterPage상에 있어서 종속된 페이지에서 이를 서버코드로 제어할 수 없는 문제가
있었던 것이다.
1.dropdownlist를 선택할때마다 radiobutton의 text를 변경
2.dropdownlist는 마스터페이지에 radiobutton은 종속페이지에 위치
이런 제약조건때문에 서버페이지에서 종속페이지의 컨트롤을 직접 제어할 수도 없는 난점때문에 자바스크립트로 해결하기로 했다.
$(document).ready(function(){
$('#dropdownlist').live('change',function(){
var _chkcode = $('#dropdownlist_ClientID option:selected').val();
var tags = document.getElementsByTagName('label');
for(var i = 0; i < tags.length; i++){
if(tags[i].getAttribute('for') == 'RadioButton_ClientID'){
if(_chkcode == 'Code01'){
tags[i].innerHTML = '텍스트1';
}
else if(_chkcode == 'Code02'){
tags[i].innerHTML = '텍스트2';
}
}
}
});
});;
위와같은 방법으로 해결했다.
<asp:RadioButton>은 html로 변환될경우 <input id='clientID' type='radio' value='serverID'/><label for='clientID'>텍스트</label> 로
변환된다. 결국 Radio버튼의 text값은 <label for='clientID'의 값을 변경해야 하는 것이다. 그런데 <label은 id가 없기때문에
var tags = document.getElementsByTagName('label'); 이런식으로 label개체들을 for로 처리하여 해결한다.
tags[i].getAttribute('for') == 'RadioButton_ClientID' 이부분이 내가 원하는 label개체를 선별할 수 있도록 해준다.
나머지는 일사천리~