次の方法で共有


SelectionList コントロールとインデックス値

更新 : 2007 年 11 月

ASP.NET SelectionList モバイル コントロールは、可能な限り、簡潔なマークアップ言語をクライアント ブラウザに送信します。ほとんどの場合、ASP.NET は項目の Value プロパティの内容をクライアントに送信することはありません。その代わりに、項目の 0 から始まるインデックス番号を送信します。

たとえば、SelectionList コントロールが、次の表に示すテキストと値が設定された項目を持っているとします。

[項目のテキスト]

項目の値

Rain

"A rainy string"

Snow

"A snowy string"

Sun

"A sunny string"

Wind

"A windy string"

コントロールがレンダリングするマークアップの部分は次のようになります。

<Select Name = " WeatherSelectionList">
   <Option Value = "0">Rain</Option>
   <Option Value = "1">Snow</Option>
   <Option Value = "2">Sun</Option>
   <Option Value = "3">Wind</Option>
<Select>

ユーザーが一覧にある項目を選択し、ブラウザがサーバーにフォームをポストする場合、クライアントは選択された項目のインデックス番号を送信します。ユーザーが [Snow] を選択すると、クライアントは番号 1 をサーバーに送信します。

項目の Value プロパティにある文字列は、クライアントとサーバーの間で渡されないため、通信が効率的になります。このテクニックは、帯域幅の狭いワイヤレス チャネルで特に役立ちます。

ユーザーの入力を、クライアントが同じページにポストバックしないことも可能です。この動作は、SelectionList コントロールを含む Form コントロールの Action プロパティが、別のページの URL に設定されているときに発生します。この場合、SelectionList コントロールは出力を最適化しません。コントロールは、インデックス番号をクライアントに送信する代わりに、各項目の Value プロパティに含まれる実際の文字列を送信します。

参照

概念

リスト コントロールによるデータへのアクセス