0

ASP.Net Dynamic Data、Visual Studio 2010、および C# を使用しています。

business_type.ascx拡張子が .ascx の 3 つのカスタム コントロール (FieldTemplates) がありますdepartment.ascxsection.ascx

最初のコンボ ボックス cod_business type where = 6 から選択した場合、cod_business = 6 の部門のみを表示したいと思います。

500 の部門があるとしますが、そのルールを達成できるのは 5、128、および 446 だけです。

また、2,500 のセクションがあるとしましょう。

  1. 40、66、および 222 は、cod_dept = 5 および cod_business = 6 です。
  2. 346、399、400、403、および 458 には、cod_dept = 128 および cod_business = 6 があります。
  3. 14、45、333 a、d 335 には、cod_dept = 446 および cod_business = 6 があります。

また、部門コンボ ボックスから選択したセクションに応じて、cod_business = 6 および cod_dept = 5 または 128 または 446 のセクションのみを 3 番目のコンボ ボックスに表示したいと思います。

注意: これは ASP.Net 4.0 Dynamic Data で動作する必要があります

これは達成可能ですか?

Steve Naughton の Cascading ソリューションを見たことがありますが、それらはデータベース指向です。

ドロップダウンリストを「より本質的な形式で接続」する必要があります。つまり、各ドロップダウンリストにデータを入力するためのエンティティはありませんが、各ドロップダウンリストに含まれる値自体のリストはありません。私は通常、これらの値を小さな Excel スプレッドシートまたは小さなテキスト ファイルから入力します。

よろしくお願いします。

4

1 に答える 1

0

ドロップダウンの値を最初にどのように設定していますか? それらはデータバインドされたコントロールですか?

いずれにせよ、フィルタリングを実現するには、ポストバックでこれら 3 つのコントロールを操作する方法が必要になります。これを行う 1 つの方法は、DropDownList をユーザー コントロールのプロパティとして公開することです。コード ビハインドでは、次のようなプロパティを追加します。

public DrowDownList List {
get { return this.DropDownInsideTheControl; }
set { this.DropDownInsideTheControl = value; } }

適切なイベント ハンドラーをイベントに追加してOnSelectedIndexChanged設定AutoPostBackするtrueと、準備完了です。次に、必要なフィルタリングを管理できるすべてのコントロールを含むページ。

このアプローチは機能しますが、3 つのドロップダウンを別々のユーザー コントロールに分けると、作業が難しくなると思います。この 3 つのコントロールはすべて非常に密接に関連しているため、それらすべてを同じユーザー コントロールに含めることは理にかなっています。このようにして、彼らとより直接的にやり取りし、接続された関係をより簡単に管理できます. Page上記で概説したように、コントロールが実行されているリストにリストを公開することはできます。

于 2011-01-29T17:55:41.520 に答える