2011-08-16 3 views
0

ASP.NET 웹 서비스와 상호 작용해야하는 ASP.NET 3.5 웹폼 응용 프로그램이 있습니다. 웹 서비스는 드롭 다운 목록에 채울 유효한 값 목록을 제공합니다. 클라이언트 측 또는 서버 측에서이 작업을 수행하는 것이 좋습니다. 서버 측에서는 asmx 웹 서비스에 데이터 소스 세트를 어떻게 정의합니까? 클라이언트 측에서 끝난다면 좋은 JQuery 위젯을 제안 해주세요.웹 서비스 메서드의 결과로 DropDownList를 채우는 방법은 무엇입니까?

도움을 주셔서 감사합니다.

+0

반환되는 : 예제 코드 나는 당신이 jQuery를에 상자를로드 할 방법은 다음과

가에 손이 있었다? xml/json? – Gthompson83

+0

JSON 저는 믿습니다. – SidC

답변

1

OPTS 내가 JSON의 목록을 렌더링하기 위해 수집 데이터 계약에 내장 중 하나를 사용하는 WCF 서비스를 정의하는 것 :

[ServiceContract] 
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] 
public class optionsservice 
{ 

    // Return a dynamic list of the options 
    [WebInvoke(UriTemplate = "/getOptions?type={type}", Method = "GET", ResponseFormat = WebMessageFormatJson)] 
    public SelectOptions getOptions(string filter = "") 
    { 

     SelectOptions returnOptions = new SelectOptions(); 
     //get your datatable here. 
     foreach (DataRow r in tbl.Rows) 
     { 
      returnOptions.Add((string)r["id"], (string)r["value"]); 
     } 
     return returnOptions; 

    } 

    [CollectionDataContract(Name = "collection", 
      KeyName = "id", 
      ValueName = "value", 
      Namespace = "")] 
    public class SelectOptions : Dictionary<string, string> { } 
} 

당신은 또한 목록에 데이터 테이블을 캐스팅 수를하지만이 유일했다 어떤 데이터 형식

<script type="text/javascript" src="jquery.js"></script> 
     <script type="text/javascript" charset="utf-8"> 
     $(function(){ 
     $("select#ctlSelect").change(function(){ 
      $.getJSON("/select.php",{id: $(this).val(), ajax: 'true'}, function(j){ 
      var options = ''; 
      for (var i = 0; i < j.length; i++) { 
       options += '<option value="' + j[i].id + '">' + j[i]value + '</option>'; 
      } 
      $("select#ctlSelect").html(options); 
      }) 
     }) 
     }) 
     </script> 
관련 문제