2012-02-08 14 views
0

私はasp.net Webアプリケーションに2つのラジオボタンと1つのドロップダウンリストを持つラジオボタンリストを1つ持っています。 Ajax Cascadingドロップダウンを使用して、クライアント側でラジオボタンを選択する際のドロップダウンリストの値を変更する必要があります。誰にでも解決策を提供できるかどうかは、私のプロジェクトにとって本当に役立つことを意味します。C#でカスケードドロップダウンを使用してラジオボタンリストのラジオボタンを選択してドロップダウンリストの値を変更する方法

は、私は同様の要件の準備のコードを持っている...

+0

あなたの受取人数を増やす –

答えて

0

、ありがとうございました。私はそれが助けて欲しい。

解決策:状態を持つxmlファイルがあるとします。これは、ラジオボタンのクリックで入力する必要があるドロップダウンリストのデータソースです。同じページコードbehiで

<script type="text/javascript"> 

     $(document).ready(function() { 

      $("input:radio[name='rblist']").click(function() { 

       var selectedRadio = $("input:radio[name='rblist']:checked").val(); 

       //Code to fetch complex datatype 
       $.ajax({ 
        type: "POST", 
        url: "/Samples.aspx/GetStatesWithAbbr", 
        dataType: "json", 
        data: "{ id :'" + selectedRadio + "'}", 
        contentType: "application/json; charset=utf-8", 
        success: function (msg) { 
         //alert(msg.d); 
         $("#ddlStates").get(0).options.length = 0; 
         $("#ddlStates").get(0).options[0] = new Option("-- Select state --", "-1"); 

         $.each(msg.d, function (index, item) { 
          $("#ddlStates").get(0).options[$("#ddlStates").get(0).options.length] = new Option(item.Name, item.Abbreviation); 
         }); 
        }, 
        error: function() { 
         alert('error'); 
        } 
       }); 

      }); 

      $("#ddlStates").bind("change", function() { 
       $('#' + '<%= lblSelectedState.ClientID %>').val($(this).val()); 
      }); 
     }); 
    </script> 

WebMethodのWebメソッドを呼び出す

<?xml version="1.0" encoding="utf-8" ?> 
<states> 
<state name="ALABAMA" abbreviation="AL" /> 
<state name="ALASKA" abbreviation="AK" /> 
</states> 

ASPXコード

<asp:RadioButtonList CssClass="radio" runat="server" ID="rblist"> 
    <asp:ListItem Value="1">Yes</asp:ListItem> 
    <asp:ListItem Value="2">No</asp:ListItem> 
</asp:RadioButtonList> 
<br/> 
<asp:DropDownList runat="server" ID="ddlStates"/> 

jQueryのコードND

[WebMethod] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    public static List<State> GetStatesWithAbbr(string id) 
    { 
     List<State> sbStates = new List<State>(); 

     XmlDocument doc = new XmlDocument(); 
     string filePath = HttpContext.Current.Server.MapPath("~/App_Data/States.xml"); 
     doc.Load(filePath); 

     try 
     { 
      foreach (XmlElement xnl in doc.DocumentElement.ChildNodes) 
      { 
       State st = new State(); 
       st.Name = xnl.Attributes["name"].Value; 
       st.Abbreviation = xnl.Attributes["abbreviation"].Value; 
       st.value = xnl.Attributes["name"].Value; 
       sbStates.Add(st); 
      } 
     } 
     catch (Exception ex) 
     { 
      string exp = ex.ToString(); //Setup a breakpoint here to verify any exceptions raised. 
     } 
     return sbStates; 
    } 

国家クラス

public class State 
    { 
     public string Name { get; set; } 
     public string value { get; set; } 
     public string Abbreviation { get; set; } 
    } 

、について説明

1. On click of radio button we call a web method defined in code 
behind. 
2. web method accepts radio button's selected value and returns the states. 
3. State is a complex type.Returned type is json. 
4. On Success returned data is populated in dropdownlist. 

私はあなたがjQueryを使って精通していると仮定しました。

+0

申し訳ありませんが、私はカスケードドロップダウンで行う必要があります。カスケードドロップダウンで可能ですか? – Kathirvel

+0

このリンクを試すことができます。 http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/Walkthrough/CCDWithDB.aspxをクリックし、カスケードドロップダウンリストのControlIdをラジオボタンリストに変更してみてください。私はそれがうまくいくかどうかはわかりません。それが動作しない場合は、Jqueryの世界へようこそ。 – PraveenLearnsEveryday

関連する問題