コード ビハインドで項目を動的に生成し、リストに追加できます。そのためには、runat="server"
属性をに追加するか、サーバー コントロールselect
を使用する必要があります。asp:DropDownList
ファイルの内容を逐語的にリストに挿入しているようです。おそらく、それをより構造化されたデータに変更するか、少なくとも構造化されたデータとして読み取る必要があります。
例:
<%-- in markup of control/page --%>
<asp:DropDownList runat="server" id="ddlCatalogs" />
// in codebehind
// to make this work, you'll need to read the file one line/item as a time
foreach( var item in listOfItemsInFile ){
var li = new ListItem();
// TODO: populate "li" from the item's data
// add it to the server control's collection...now it's a part of the ASP.Net
// page lifecycle
this.ddlCatalogs.Controls.Add( option );
}
ドロップダウンをサーバー コントロールとして扱うと、さまざまな方法で状態を維持できます (デフォルトでは ViewState が処理しますが、リスト内の項目が多いと ViewState は非常に大きくなります)。
または、別の方向に進んで (サーバー コントロールは関係ありません)、生のRequest.Form
コレクションを調べて、選択リストのデータが含まれているかどうかを確認し、それをページに書き戻すこともできます。
このシナリオでも、正しいオプションを選択できるように、より構造化された方法で入力ファイルを列挙する必要があるでしょう。