목표
특정 이미지를 클릭하면 다른 이미지로 변경되고 다시 클릭하면 원래 이미지로 돌아오는 토글 형식의 이벤트를 구현, 단 해당 컨트롤은 서버쪽에서도 접근 가능해야 함
준비
이미지 컨트롤은 asp .net의 이미지 컨트롤을 사용하지 않고 html 컨트롤을 사용한다. 적당한 위치에 이미니 컨트롤을 추가
<span style="cursor:hand" onclick="return Test_Change_Img('Test_Img');">
<img src = "img/small-sphere-green.bmp" runat="server" alt="" id= "Test_Img" name = "Test_Img" style="border-width: 0" enableviewstate="false" /></span>
<img src = "img/small-sphere-green.bmp" runat="server" alt="" id= "Test_Img" name = "Test_Img" style="border-width: 0" enableviewstate="false" /></span>
초기 이미지는 img 폴더의 small-sphere-green.bmp 로 설정하였다.
구현
함수를 호출하는 곳에서 해당 이미지의 이름을 함께 넘겨준다. 함수 구현부에서는 컨트롤 이름을 통해 이미지의 url을 알아내고 해당 url을 비교하여 토글링에 이용한다.
주의 : 이미지 src에는 full url이 들어가 있다 따라서 이미지 파일 이름만 얻어오기 위해 몇가지 string 관련 함수를 이용하였다.
function Test_Change_Img(){
var str = document[Test_Change_Img.arguments[0]].src;
var str_index = str.lastIndexOf("/"); 1
var img_src_str = str.slice(str_index+1, str.length); 2
if(img_src_str == "small-sphere-red.bmp"){
document[Test_Change_Img.arguments[0]].src = "img/small-sphere-green.bmp";
}else{
document[Test_Change_Img.arguments[0]].src = "img/small-sphere-red.bmp";
}
}
var str = document[Test_Change_Img.arguments[0]].src;
var str_index = str.lastIndexOf("/"); 1
var img_src_str = str.slice(str_index+1, str.length); 2
if(img_src_str == "small-sphere-red.bmp"){
document[Test_Change_Img.arguments[0]].src = "img/small-sphere-green.bmp";
}else{
document[Test_Change_Img.arguments[0]].src = "img/small-sphere-red.bmp";
}
}
비하인드 코드(*.cs)에서는 다음과 같이 이미지 컨트롤에 접근할 수 있다.
Test_Img.Src = "img/small-sphere-red.bmp";
'Programming > ASP .NET' 카테고리의 다른 글
c#에서 String.Format 형식 타입 지정하기 (0) | 2007.02.28 |
---|---|
char[ ] -> string, string -> char[ ] (1) | 2007.02.28 |
ASP 웹 페이지 최적화 (0) | 2007.02.27 |
SQL 캐시 종속성과 WebUserControl을 이용한 캐싱 방법 (1) | 2007.02.23 |
파일 업로드 소스 (0) | 2007.02.22 |