dポイントプレゼントキャンペーン実施中!

SqlDataSource と関連付けた ドロップダウンリストが
2つあります。
1つは年度の選択を行い、もう1つは選択した年度に
該当する月を、表示・選択させます。

月を選択するドロップダウンリストにおいて、Form起動
時の初期表示の値として、SqlDataSource 内の最大値を
表示させたいのです。

<例:2008/12/25 現在 の場合>

●2007年度を指定した場合
・2008/3 が最終月のため、「03」をセット。
・SqlDataSource内には、2007/4 ~ 2008/3
までのデータが必ず存在する。

●2008年度を指定した場合
・2008/12 が最終月のため、「12」をセット。
・但し、2008/12 のデータが無い場合が想定される
ため、SqlDataSource内の最大値を特定しセットし
たい。

上記の例は、あまり良い例ではないと思いますが、やり
たいことは、SqlDataSourceで取得した値の中から、最大
値を特定し初期値として表示することです。

どなたかご存じないですか?

ASP2.0 言語:VB

A 回答 (2件)

ドロップダウンリストのDataSourceIdをSqlDataSourceにすると、SQL文の取得値が直接バインドされてしまいますので、普通にいったんDataTableで取得し、必要な形式(この場合はGeneric.Dictionaryがいいと思います)のコレクションを生成して、これをバインドしたほうがいいと思うのですが。


どうしてもデータソースコントロールを使いたいのであれば、カスタムメソッドで取得できるObjectDataSourceを使うべきかと。
    • good
    • 0

DropDownList2のDataSourceで4,5,6,7,8,9,10,11,12,1,2,3 などバインドしているならば


DropDopDownList2のDataBoundイベントで
if DropDownList2.SelecttedIndex = -1 then
  DropDownList2.SelecttedIndex = DropDownList2.Items.Count - 1
end if
といった具合で可能なのでは ・・・
    • good
    • 0
この回答へのお礼

「DataBoundイベント」と 「Items.Count」か・・・
手探りで何も情報が無かったので困ってました。
ヒントになりそうです。頑張ってみます。
ありがとうございました。

お礼日時:2008/12/27 18:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!