您可以在后面的代码中动态生成项目并将它们添加到您的列表中。为此,您需要将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
集合以查看它是否包含您的选择列表的数据,然后将其写回您的页面。
即使在这种情况下,也可能需要以更结构化的方式枚举输入文件,以便您可以选择正确的选项。