0

1 ~ 10 のドロップダウン ボックスを含むさまざまな入力を含む aspx Web フォームがあります。フォームが送信されると、10 行の静的テキスト ボックスとラベル コントロールを含む新しいパネルが表示されます。これらのコントロールはすべて、デフォルトで visible=false に設定されています。

私が欲しいのは、前のドロップダウン ボックスで選択した数、つまり、visible=true に変更したいコントロールの行数に基づいています。これらのコントロールの ID は、それらが属する行を反映する最後の文字を除いて、各行で同じです。したがって、行 1 は次のようになります。

ticketNum_Lbl_1 your_res_Txt_1 title_Txt_1 firstname_Txt_1 surname_Txt_1 ticketNum_Txt_1

私が欲しかったのは、コントロールの ID の末尾にある数字をチェックし、それをドロップダウンで選択された数字と比較する単純なループでした。

明確にするために、ドロップダウン リストは、ユーザーが予約したいテーブルの座席数を選択するためのものです。次の画面では、予約している座席に名前を割り当てることができます。

私はいくつかのことを試しましたが、明らかにそれを取得していませんが、次のようなものかもしれません:

    Dim rowsNeeded As Integer = number_of_tickets_Ddl.SelectedValue
        For a = 1 To rowsNeeded
        Me.Controls("ticketNum_Lbl_" & a).Visible = True
        Me.Controls("your_res_Txt_" & a).Visible = True
        Me.Controls("title_Txt_" & a).Visible = True
        Me.Controls("firstname_Txt_" & a).Visible = True
        Me.Controls("surname_Txt_" & a).Visible = True
        Me.Controls("ticketNum_Txt_" & a).Visible = True

    Next

しかし、コントロールはコントロールの名前や ID ではなくインデックス (整数) を参照するため、エラーが発生します (どうやら?)。

どんな助けでも感謝します。

4

1 に答える 1

2

FindControlを使用する必要があります

Me.FindControl("ticketNum_Lbl_" & a).Visible = True
于 2012-08-09T10:49:48.157 に答える