C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.68191 の関連記事表示

<< 0 >>
■68191  GridViewのDropDownListの行番号
□投稿者/ 5Remedy -(2013/09/30(Mon) 02:13:29)

    分類:[ASP.NET (VB)] 

    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がありませんでした。
    よろしくお願いいたします。
親記事 /過去ログ116より / 関連記事表示
削除チェック/

■68192  Re[1]: GridViewのDropDownListの行番号
□投稿者/ WebSurfer -(2013/09/30(Mon) 08:44:19)
    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 に保存しているのか?)
    もよく分かりません。
記事No.68191 のレス /過去ログ116より / 関連記事表示
削除チェック/

■68198  Re[2]: GridViewのDropDownListの行番号
□投稿者/ 5Remedy -(2013/09/30(Mon) 12:50:22)
    No68192 (WebSurfer さん) に返信

    説明不足で申し訳ありませんでした。

    >
    > そもそも、ユーザー入力に DropDownList を使う目的は、無効な値を
    > 入力できないようにすることによってユーザビリティを高めることだ
    > と思いますが、何故、今回、無効な値を選択できるようにするのでし
    > ょうか?

    DropDownListにはDBから取得した値を表示しています。
    DBに無効な値が入っていればそれをDropDownListのSelectedIndexとして表示しなければいけません。
    無効な値はユーザーから選択してほしくないけれどDBには存在するものなので、DropDownListの項目から削除すると仕様的に変だと思っていました。
    しかし、ユーザーの使いやすさを考えたら、選択してはいけない項目を表示するのはおかしいと気づきました。

    DBに無効な値が入っているレコードのDropDownListのitemには無効な値の項目を追加するけれど、それ以外のレコードのDropDownListには無効な値の項目を追加しないことにしました。

    次に質問するときは、回答者さんが読んで分かるように詳しく書きます。
    ありがとうございました。
記事No.68191 のレス / END /過去ログ116より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -