| ■No68191 (5Remedy さん) に返信 > 2013/09/30(Mon) 02:14:42 編集(投稿者) > > asp.net(VB)でGridViewにDropDownListを埋めこんでいます。 > > DropDownlistの項目が(0,1,2,3)の4つあり、 > 3を選択されたら無効と判断し、前の値(bkValue)に戻すということを実現したいです。 > > 前回の値(bkValue)は行(レコード)毎に配列で保存しています。 > > 前回値(bkValue)に戻す時に、前回値の配列のINNDEXを指定する為どこの行なのか知りたいのですがどう書けばいいのか分かりません。 > 項目が変更されたDropDownListの行数を知ることは可能でしょうか? > > ソースはDropDownListのSelectedIndexChanged内で以下のようにコーディングしています。 > > Protected Sub DropDownList2_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) > If DirectCast(sender, DropDownList).SelectedIndex = 3 Then > DirectCast(sender, DropDownList).SelectedIndex = bkValue(?) ←何行目のDropDownListの前回値か分からない? > End If > > GridViewのイベントなら、e.RowIndexで取得できるみたいですが、DropDownListの上記イベントではeのメンバにRowIndexがありませんでした。 > よろしくお願いいたします。 >
いろいろ不明点が多すぎるのでハズレかもしれませんが・・・
GridView.EditIndex プロパティから取得できませんか?
回答者は、掲示板に書いてある情報以外は何も知り得ないという認識 を持って、どのような情報を提供すれば回答者が質問者さんの状況を 的確に把握でき、的を得た回答ができるかよく考えた上で質問を書い ていただければと思います。
どのような情報を提供すればいいかというと、例えば:
そもそも、ユーザー入力に DropDownList を使う目的は、無効な値を 入力できないようにすることによってユーザビリティを高めることだ と思いますが、何故、今回、無効な値を選択できるようにするのでし ょうか? まず、そのあたりから説明されると、より的を得た回答が 得られると思います。
GridView のある行を編集モードにすると DropDownList が表示され るのだと想像してますが、そのあたり何も書いてありません。
どのようにしてポストバックしているのでしょうか? DropDownList の AutoPostBack を使うのと、GridView の各行に配置した Button を使うのとでは RowIndex の取得方法が違ってきます。
また、「前回の値(bkValue)」とは何か、「行(レコード)毎に配列で 保存」とありますが、具体的にどうやっているのか(そもそも、VB.NET の配列では保存できないはず・・・ViewState に保存しているのか?) もよく分かりません。
|