0

4 つのリストボックス (lstStates、lstCounties、lstCities、および lstZipcodes) があります。以下にいくつかの制約を示します。

  • 無効になっているリストボックスはありません。

  • リストボックスはいつでも選択できます。つまり、ユーザーが選択しなければならない特定の順序はありません。

  • フィルタリングは順方向と逆方向です。つまり、ユーザーが lstStates から州を選択すると、lstCounties、lstCities、および lstZipcodes がフィルター処理されます。ユーザーが lstZipcodes から郵便番号を選択すると、lstCities、lstCounties、および lstStates がフィルター処理されます。

  • リストボックスでは複数選択が可能です。

各リストボックスは、初期データを取得するためにデータ テーブルにバインドされます。データテーブルは、sqlserver ストアド プロシージャから取得されます。各リストボックスには独自のストアド プロシージャがあります。たとえば、lstStates には 1 つの列 (State) を返す GetStates という名前のストアド プロシージャがあり、ListBoxes の DataValueField と DataTextField は両方とも State に設定されます。lstStates と同様に、lstCities は、都市である GetCities ストアド プロシージャから 1 つの列を取得するデータ テーブルにバインドされます。

もう 1 つ指摘したいことは、ObjectDataSource を接続してデータテーブルを取得していることです。

4

3 に答える 3

2

すでに尋ねられた:c#で別のリストボックスの選択に基づいてリストボックスをフィルタリングする最も効率的な方法は何ですか?

[編集]OK、あなたがする必要があるのは、各[myListbox]_SelectedIndexChangedイベントにイベントを追加することです。選択が変更された場合、それらの選択に基づいて他のすべてのリストボックスを更新する必要があります。他の方法で州を郵便番号にリンクするのは醜いので、これはデータベースで処理する必要があると思います。したがって、おそらく州<->郵便番号<->郡の関係のデータはデータベースのどこかにあります。

そのため、db(またはLINQ中間層)に、Zipなどで状態を取得するprocが必要になります。選択が変更されたイベントごとに、新しい選択をdb sprocに送り返し、返されたデータに基づいてリストボックスを再バインドします。zipが渡されない場合など、すべての状態を返す1つのsprocを作成できるはずです。[/編集]

于 2009-01-06T20:27:26.750 に答える
0

明確にするために、ページの最初のロードで、すべての郵便番号、すべての都市、すべての州、およびすべての国をロードしていますか?

これは私には少し面倒に思えます。これは、私が質問するタイプの要件です。(確かに、あなたがまだそれについて質問していなかったか、またはそこからいくつかの良い答えが得られたかどうかはわかりません)。

于 2009-01-06T20:47:54.603 に答える