2012-04-24 2 views
2

Request.Formでコントロールの種類を決定する方法はありますか。Request.Formのコントロールの種類を決定する

foreach (string x in Request.Form.Keys) 
{         
    if (Request.Form[x] == null || Request.Form[x].ToString() == "") 
    {.... 

私は各ループについて知りたいですが、コントロールの種類は何ですか?

それがテキストボックス、リストボックス、隠しフィールドなどです...

はどのようにこれを行うことができますか?

+0

あなたがそれを知る必要がある理由はありますか? –

+2

http://stackoverflow.com/questions/1788490/c-how-can-i-iterate-through-all-checkboxes-on-a-form – corn3lius

+3

@ corn3lius:どのようにこの質問に関連して表示されません。 OPはすべての 'Request.Form.Key'のコントロールタイプを必要とします。 –

答えて

1

しばらくすると、強く型付けされたコントロールオブジェクトではなく、リクエストコレクションを手動で処理すると便利です。しかし、ほとんどの場合、すべてのコントロールを繰り返すことはおそらく悪い考えです。

リクエストコレクションのキーを使用して、recursiveFindControl()を実行できます。 FindControlがnullを返さない場合は、コントロールのタイプを確認してください。

送信されたキーがコントロールの実際のIDと異なることに注意してください。通常は次のようになります。

<input type="text" name="foo$bar$txtFirstName" id="foo_bar_txtFirstName" /> 

"name"はリクエストコレクションの実際のキーですが、 "id"はコントロールのIDです。これはさらにマッピングステップをさらに必要とする。

0

これはできません。ブラウザはこの情報を送信しません。 HTTP標準には、この情報を本質的に送信する方法は含まれていません。

関連する問題