반응형

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개체를 선별할 수 있도록 해준다. 


나머지는 일사천리~

+ Recent posts