紙のフォームを複製するために ASP.Net でフォームを作成しています (設計については何も言えません。単にデジタルで再作成することを任されています)。このフォームには、「はいまたはいいえで答えてください。はいの場合は、金額を指定してください」という行に沿って多くの質問があります。私は現在、質問をリストし、グループに2つのラジオボタンを付けて処理しています。1つは「はい」、もう1つは「いいえ」です。これをもう少しきれいにするために、ユーザーが [はい] を選択した場合にこの [はい] の値を保持するテキスト ボックスのみを表示する Ajax updatepanels を使用しています。
これで問題なく実行できましたが、各質問は独自のラジオボタン グループであり、可視性を更新するための独自のパネルがあります。つまり、現在行っている方法では、次のような冗長なコードがたくさんあります。
Protected Sub rdoShowOriginalEquipment(ByVal sender As Object, ByVal e As System.EventArgs)
If rdoOEYes.Checked = True Then
pnlOriginalEquipment.Visible = True
ElseIf rdoOENo.Checked = True Then
pnlOriginalEquipment.Visible = False
End If
End Sub
そのようなはい/いいえのオプションがあるすべての質問についても同様です。これを行うためのより良い方法があることは間違いありません。ラジオボタングループに関連付けられたパネルを渡す方法があるかどうか疑問に思っていたので、コードで単一のメソッドを使用して、すべてのラジオボタンのポストバックに対して起動することができます (実際のコードではありません)。
Protected Sub showPanel(RadioButtonGroup, panel)
If rdoYes.Checked = True Then
panel.Visible = True
ElseIf rdoNo.Checked = True Then
panel.Visible = False
End If
End Sub
または、このような質問を処理するためのより良い方法はありますか? 私が現在入力している冗長なコードの量が削減されるのであれば、別のアプローチを受け入れます。私は VB を使用していますが、C# を知っているので、誰かがそれに精通していれば、問題なく解釈できます。
どんな助けでも大歓迎です。