2014-11-17 1 views
0

this control을 사용하려고하고 코드 백엔드 (cs 파일)에서 액세스 할 수 있습니다. 나는 어떤 작품 아래의 코드로 시작 :runat 추가하기 = 서버가 선택 컨트롤에서 스타일을 제거합니다

$(document).ready(function() { 
     $("#foundImages").imagepicker({ 
      hide_select: true, 
      show_label: true 
     }); 
    }); 

<select id="foundImages" class="image-picker show-labels show-html"> 
    <option data-img-label="Awww" data-img-src="http://placekitten.com/220/200" value="1">Cute Kitten 1</option> 
    <option data-img-label="Yeah" data-img-src="http://placekitten.com/180/200" value="2">Cute Kitten 2</option> 
    <option data-img-label="Ohai" data-img-src="http://placekitten.com/130/200" value="3">Cute Kitten 3</option> 
    <option data-img-label="Plop" data-img-src="http://placekitten.com/270/200" value="4">Cute Kitten 4</option> 
</select> 

그러나 나는 그것에 runat="server"을 추가, 그래서 난 그냥의 .cs 파일에서 드롭 제어를 액세스 할 수 있습니다 때 표준 콤보 박스처럼 보입니다. 어떤 이유에서 내가 runat="server"을 추가 할 때 스타일이 제거되는 이유는 무엇입니까? 아니면 내 CS 파일에서 <select> 컨트롤에 액세스하는 다른 방법이 있습니까?

감사합니다.

+0

runat 서버 구성 요소입니다. 서버 측에서 미리 렌더링 된 –

+0

은 동일한 ID입니까? –

답변

2

runat="server"을 선택에 추가하면 서버 측 컨트롤로 바뀝니다. 이 경우 생성 된 HTML 선택 ID는 foundImages.ClientID입니다 (소스보기를 사용하여 확인할 수 있음). 이 라인으로

$("#foundImages").imagepicker({ 

: 이것은 당신이이 줄을 변경해야 의미, 즉 제대로 (ClientIDMode이 설정되어 있지 않으면) ID가 변경 될 수 있음을 명시

$("#<%=foundImages.ClientID%>").imagepicker({ 
1

'runat="server"' 외에도 'clientidmode="Static"'을 추가하십시오.

경우에 따라 ASP.NETID을 변경하므로 CSSJavaScript이 손상된 것으로 보일 수 있습니다. 그러나 클라이언트 ID 모드를 'Static'으로 설정하면 ASP.NET에서 ID 만 남겨 두게됩니다.

+0

마스터 페이지와 aspx 페이지의 컨트롤에 동일한 ID가 있으면 ClientIdMode가 Static으로 설정된 경우 페이지가 깨집니다. – cpacheco

1

는 다른 답변에 이어, 간단한 당신이보고있는 문제를 해결하는 방법은 요소의 CSS 클래스를 사용하는 것입니다.

당신은 이미 드롭 다운에 클래스 image-picker을 할당, 그래서 다음을 수행하지 않을 이유가 없습니다 : 다음에서 컨트롤을 얻을

$(document).ready(function() { 
    $(".image-picker").imagepicker({ 
     hide_select: true, 
     show_label: true 
    }); 
}); 
1

처음 사용할 때이 컨트롤

'clientidmode="Static"' 

은 이 같은 스크립트는

$("#<%=img.ClientID%>").imagepicker({...}); 
관련 문제