2011-12-05 2 views
0

큰 ASP.NET \ VB.NET 웹 사이트 프로젝트에서 작업 중입니다. 세 개의 드롭 다운 목록을 채워야합니다. 마지막 두 가지는 이전의 것과 독립적입니다. 채우기 데이터는 SQL Server에서 가져옵니다. 포스트 백을 사용하여 코드 숨김으로이 작업을 수행하는 데 아무런 문제가 없지만 PostBacks가 필요하지 않으므로 Ajax \ jQuery에서이를 개발하기 시작했습니다.Ajax를 사용하여 Javascript 또는 Jquery로 문자열 목록을 재생하는 방법은 무엇입니까?

서문 :

드롭 다운리스트의 값과 텍스트가 다른 데이터베이스에 묶여 상표입니다. 서버 측, 아약스 방법에 의해 호출 된 함수는 값 및 텍스트 문자열 목록의 목록을 반환 즉

list[0][0] = "ID0" 
list[0][1] = "VP" 

목록이 잘 구축하고 데이터베이스에서 가져온 올바른 값을 반환한다.

문제 :

이 지금은 아약스 성공 응답으로 전송 목록에서 드롭 다운리스트를 채우려 내가 힘든 시간을 그 일이있다.

여기에 지금까지

$.ajax(
     { 
      type: "POST", 
      url: "Projet.aspx/GetDir", 
      data: "{VP:'" + dd_effort_vp + "',DP:'" + dd_effort_dp + "',Direction:'" + dd_effort_d + "'}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(response) { 
       // This code works if only a simple list of string is 
       // returned from the server-side called function. 
       var cars = response.d; 

       $.each(cars, function(index, value) { 
         $('#<%= dd_effort_directionp.clientid()%>').append(
         $('<option></option>').val(value).html(value)); 
       }); 
      } 

이 코드는 IF를 작동 만 내가 서버 측 함수에 의해 반환 된 문자열의 간단한 목록이있는 경우 그것의 아약스 부분입니다.

는 지금은 var cars에서 문자열 (목록의 목록에서 값을 얻을 새로 채워 드롭 다운리스트의 각 항목에 대한 권리 ID 및 설명을 할당을 수정하려는.

답변

1

서버가 반환하는 경우 배열의 요소가 배열 인 jQuery에 오는 문자열 목록 목록입니다. 배열의 어떤 요소 (다시 문자열 목록이 포함될 것인가)를 알아 내야합니다. . 당신은 0 번째 배열을 원하는 경우 드롭 다운, 당신은 할 것 :

var cars = response.d[0]; 

또한 asp.net이 예측할 수없는 이름을 제공하기 때문에 관련 드롭 다운 목록을 찾는 데 많은 어려움을 겪고있는 것처럼 보입니다.

각 드롭 다운을 CssClass 속성을 통해 클래스을 고유하게 지정하고 그런 식으로 선택하는 것이 좋습니다.

<asp:DropDownList runat="server" CssClass="dd_effort_directionp"></asp:DropDownList> 

$.each(cars, function(index, value) { 
    $(".dd_effort_directionp").append(
     $("<option />").val(value).html(value)); 
}); 
관련 문제