CascadingDropDown を使用して一覧に入力する (C#)
AJAX コントロール ツールキットの CascadingDropDown コントロールは、DropDownList コントロールを拡張して、1 つの DropDownList の変更によって関連付けられた値が別の DropDownList に読み込まれるようにします。 (たとえば、1 つのリストで米国の州の一覧が提供され、次のリストにはその州の主要都市が入力されます)。解決する最初の課題は、このコントロールを使用してドロップダウン リストを実際に入力する方法です。
概要
AJAX コントロール ツールキットの CascadingDropDown コントロールは、DropDownList コントロールを拡張して、1 つの DropDownList の変更によって関連付けられた値が別の DropDownList に読み込まれるようにします。 (たとえば、1 つのリストで米国の州の一覧が提供され、次のリストにはその州の主要都市が入力されます)。解決する最初の課題は、このコントロールを使用してドロップダウン リストを実際に入力する方法です。
手順
ASP.NET AJAX と Control Toolkit の機能をアクティブにするには、コントロールを ScriptManager
ページ上の任意の場所 (ただし、 要素内) に配置する <form>
必要があります。
<asp:ScriptManager ID="asm" runat="server" />
次に、DropDownList コントロールが必要です。
<div>
Vendor: <asp:DropDownList ID="VendorsList" runat="server" />
</div>
この一覧では、CascadingDropDown エクステンダーが追加されます。 非同期要求が Web サービスに送信され、リストに表示されるエントリの一覧が返されます。 これを機能させるには、次の CascadingDropDown 属性を設定する必要があります。
ServicePath
: リスト エントリを配信する Web サービスの URLServiceMethod
: リスト エントリを配信する Web メソッドTargetControlID
: ドロップダウン リストの IDCategory
: 呼び出されたときに Web メソッドに送信されるカテゴリ情報PromptText
: サーバーからリスト データを非同期的に読み込むときに表示されるテキスト
要素のマークアップを次に示 CascadingDropDown
します。 C# と VB の唯一の違いは、関連付けられている Web サービスの名前です。
<ajaxToolkit:CascadingDropDown ID="ccd1" runat="server"
ServicePath="CascadingDropdown0.cs.asmx" ServiceMethod="GetVendors"
TargetControlID="VendorsList" Category="Vendor" />
エクステンダーから取得した JavaScript コードは、次の CascadingDropDown
シグネチャを使用して Web サービス メソッドを呼び出します。
public CascadingDropDownNameValue[] MethodNameHere(string knownCategoryValues,
string category)
したがって、重要な点は、メソッドが型 CascadingDropDownNameValue
の配列を返す必要があるということです (ASP.NET AJAX Control Toolkit によって定義されます)。 コンストラクターでは CascadingDropDownNameValue
、HTML の場合と同様 <option value="VALUE">NAME</option>
に、最初にリスト エントリのテキストとその値を指定する必要があります。 サンプル データを次に示します。
<%@ WebService Language="C#" Class="CascadingDropdown0" %>
using System.Web.Script.Services;
using AjaxControlToolkit;
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Collections.Generic;
[ScriptService]
public class CascadingDropdown0 : System.Web.Services.WebService
{
[WebMethod]
public CascadingDropDownNameValue[] GetVendors(string knownCategoryValues,
string category)
{
List<CascadingDropDownNameValue> l = new List<CascadingDropDownNameValue>();
l.Add(new CascadingDropDownNameValue("International", "1"));
l.Add(new CascadingDropDownNameValue("Electronic Bike Repairs & Supplies", "2"));
l.Add(new CascadingDropDownNameValue("Premier Sport, Inc.", "3"));
return l.ToArray();
}
}
ブラウザーでページを読み込むと、リストに 3 つのベンダーが入力されます。
リストが自動的に入力されます (フルサイズの画像を表示する場合はクリックします)
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示