2010-01-15 5 views
1

http://stephenwalther.com/blog/archive/2008/09/07/asp-net-mvc-tip-41-creating-cascading-dropdown-lists-with-ajax.aspx에서 계단식 드롭 다운을 사용하고 있습니다.계단식 드롭 다운에서 트리거 변경 이벤트

계단식 드롭 다운이 처음으로 비어 있지 않도록 드롭 다운에 값을 설정하고 change 이벤트를 호출해야합니다.

는 그러나 변경 이벤트는 시도로 호출되지 않습니다

  $('#Country').trigger('change'); 
         or 
      $('#Country').change(); 

어떻게 계단식 드롭 다운을 트리거하기 위해이 드롭 다운의 변경 이벤트를 호출 할 수 있습니다.

+0

bind를 사용할 수 있습니까? –

답변

0

드롭 다운 목록에서 서버 측 (asp : dropdownlist 태그) 또는 clientside (select tag)를 제어합니까?

서버 측인 경우 컨트롤의 클라이언트 측 ID를 삽입해야합니다. 이것은 사건 발생의 원인이 될 수 있습니다. ASP.NET에서

, 서버 측 컨트롤이 다른, 생성 된 클라이언트 측 ID (ID "나라"와 그래서 DropDownList로이 ct01_ct050_Country 같은의 클라이언트 측 ID를해야합니다. 이러한 경우

당신이 클라이언트 측을 주입 할 수 있습니다 사용하여 마크 업에 실행시 ID는 :

$('#<% Country.ClientID %>').change(function() { 
    //code here 
}); 

런타임에서, 렌더링 코드/마크 업처럼 보이는 끝날 것 :

$('#ct01_ct050_Country').change(function() { 
    //code here 
}); 

귀하

마크 업 :

<asp:DropDownList ID="Country" CssClass="countryDD" runat="server" /> 

및 jQuery를 :

$('select.countryDD').change(function() { 
    //code here 
}); 

이 답변 클라이언트/서버 ID를 피하기 위해 다른 옵션은 컨트롤에 고유 한 CSS 클래스 이름을 적용하고 대신에 의해 선택하는 것입니다 스트레이트 ASP.NET에 잘 적용됩니다. 해당 프레임 워크를 사용하지 않기 때문에 MVC와 관련이 있는지 확실하지 않지만 개념이나 마크 업과 클라이언트 코드가 거의 비슷하다고 가정합니다. 이 도움이 될

희망 ... 내 계단식 드롭 다운에 대한

+0

<% = Html.DropDownList ("Country") %> 및 <% = Html.CascadingDropDownList ("States", "Country") %>를 사용하고 있습니다. 내 질문에 말했듯이 옵션을 시도했지만 그 옵션에는 운이 없다. 그리고 내 응용 프로그램에 대한 asp.net mvc (C#)를 사용하고 있습니다. – Prasad

+0

MVC를 살펴본 후 전통적인 ASP.NET에서와 같이 클라이언트 ID가 필요하지 않다는 것을 알았습니다. 다른 아이디어 : $ (document.ready (function() {// 여기 코드})에 코드를 래핑했는지 확인하여 페이지가 준비되었는지 확인하십시오. 샘플 코드에도 $ ("# Country")가 있습니다. # ('# Country') change (function() {// code here}); 단순화를 위해 "function() {}"부분을 생략했는지 여부를 몰랐거나 실제 코드에서 올바른 구문을 사용하고 있습니까? 그냥 놓친 거예요 ... –

0

, 내가 jqueryon 또는 솔루션이었다 무엇

$('#Country').on('change', function() { 
    //Do stuff here 

}); 

$('#Country').bind('change', function() { 
    //Do stuff here 

}); 
관련 문제