0

私はASP.Net Dynamic Data、Visual Studio 2010およびC#を使用して作業しています。(ダイナミックデータ、ASP.Net、C#、ドロップダウンリストカスタム.ascxコントロール)ドロップダウンリストの値を渡す方法は?

私は、拡張子た.ascxを持つ3つのカスタムコントロール(FieldTemplates)があります:business_type.ascxdepartment.ascxを、私は私がのみ 部門を表示したい= 6最初のコンボボックスのcod_businessタイプから選択した場合section.ascx

そのcod_business = 6

私は500の部署がありますが、5、128、および446だけがそのルールを達成すると言います。

のも、私はの2500個のセクション持っているとしましょう:

  1. 40、66および222 = 5 cod_deptているとcod_business = 6
  2. 346、399、400、403および458はcod_dept = 128を持っていますそしてcod_business = 6
  3. 14、45、333、D 335はcod_deptた= 446とcod_business = 6

私はまた、第三のコンボボックスに表示されているしたい部分のみそのcod_business = 6そのcod_dept = 5または128または446は、そのいずれかに応じて、私は、部門コンボボックス

覚えているから選択していた:これは、ASP.Net 4.0動的データに

これが達成可能である働かなければなりませんか?

私はSteve Naughtonのカスケードソリューションを見てきましたが、それらはデータベース指向です。

私は、それぞれのドロップダウンリストを作成するためのエンティティを持っていないが、各ドロップダウンリストの中に含まれている値のリストそのものを持っていることを意味するドロップダウンリストを "より固有のフォームに接続する"必要があります。私は一般に小さなExcelスプレッドシートや小さなテキストファイルからこれらの値を入力します。

よろしくお願いいたします。

答えて

0

最初にドロップダウンの値を入力していますか?彼らはデータバインドされたコントロールですか?

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

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

OnSelectedIndexChangedイベントに適切なイベントハンドラを追加し、trueAutoPostBackを設定し、あなたが行くように良いことがあります。次に、必要なフィルタリングを管理できるすべてのコントロールを含むページが表示されます。

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

+0

ありがとうございます。 ASPで働いている間。Net Dynamic Dataコントロールは、そのエンジン「On the Fly」によってまとめられており、MetaDataファイルで定義したものに耳を傾けます。 したがって、私の場合、PopulateListControl(DropDownList1)メソッドをそれに渡すように変更しなければならないので、すべての単一のドロップダウンリスト(または他のタイプのコントロール)に対してカスタムコントロールがある場合は、ドロップダウンリストで以前に選択した値から集めた値) ここでは "代理人"が必要ですが、カスタム.ascxコントロールのインスタンスを作成しようとして問題があります。 –

+0

"...あなたがMetaDataファイルで定義したものに耳を傾ける"とは、ダイナミックデータが確立した通りにそれらを使用することを意味します: [UIHint( "ForeignKeySections")] [DisplayName( "Sections ")] パブリックオブジェクトt47tbl_sections {get;セット; } ここで、ForeignKeySections.ascxはカスタムFieldTemplateです –

関連する問題