2011-08-16 10 views
0

私は、ASP.NET Webサービスと対話する必要があるASP.NET 3.5 Webフォームアプリケーションを持っています。 Webサービスは、ドロップダウンリストに入力される有効な値のリストを提供します。クライアント側またはサーバー側でこれを行うことをお勧めしますか?サーバー側で実行される場合、asmx Webサービスにデータソースセットを定義するにはどうすればよいですか?クライアント側で実行された場合は、良いJQueryウィジェットを提案してください。Webサービスメソッドの結果でDropDownListを設定するにはどうすればよいですか?

ありがとうございます!

[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> { } 
} 

ます。また、リストにデータテーブルを唱えられるが、これが唯一だった:私はJSONでリストをレンダリングするために、収集データ契約に建てられたのいずれかを使用WCFサービスを定義したい

+0

どのようなデータ形式が返されていますか? xml/json? – Gthompson83

+0

JSON私は信じています。 – SidC

答えて

1

付き合え私はここで手

を持っていたコード例では、jQueryのにボックスをロードする方法を次のとおりです。

<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> 
関連する問題