asp.net使用C#代码插入新的下拉列表
本文关键字:下拉列表 插入 代码 net 使用 asp | 更新日期: 2023-09-27 18:25:03
我正在开发一个网站,该网站从数据库中检索数据,但对web开发来说是新手。
我使用网格视图、下拉列表和其他工具来显示数据,但有一个页面,网站用户将在其中设置需要多少特定的下拉列表来完成他的工作。
更具体地说,用户会选择产品和每种产品的数量,但我不知道用户需要多少产品。如果用户想输入x个产品数量,我想创建x个drowdown列表(在不同的行中),这样他就可以选择x个产品及其数量。
例如。用户A想要选择2个西红柿、3个土豆和5个西瓜。他将在文本框中键入3(表示产品数量),然后出现3行,每行显示2个下拉列表,用户将选择
番茄2
马铃薯3
西瓜5
添加新行->>>这是我想创建的另一件事
有什么想法吗??
在codeehind中,特别是在Page_Load
事件期间,您需要确定需要多少下拉列表,然后动态创建它们。有相当多的例子会从谷歌搜索中得到,但一个快速的例子看起来像:
int countNeeded = 15; //or whatever your code tells you is the right amount
for (int x = 0; x < 15; x++)
{
mainContent.Controls.Add(new DropDownList());
//mainContent would be a control on the page that you want to host your controls.
}
您可以在代码背后创建所需的控件。这样做时你应该考虑的事情:
- 在
Page_Init
或Page_Load
事件中创建控件 - 在每次加载页面时重新创建控件(包括回发)
- 如果希望每个下拉列表显示在单独的行中,可以将它们放在表的单独行中,也可以将
LiteralControl
放在它们之间
一些示例代码:
protected void Page_Load(object sender, EventArgs e)
{
//read how many DropDownList controls are needed
int ddlCount = txtDropDownList.Text;
for (int i = 0; i < ddlCount; ++i)
{
if (i > 0)
{
//add a page break between previous DropDownList and the current one
this.Controls.Add(LiteralControl("<br />"));
}
//add a DropDownList with ID productDdl and an appropriate number
this.Controls.pageContent.Add(new DropDownList() { ID = String.Format("productDdl{0}", i) });
}
}
我还没有测试过这个代码,所以如果你发现任何问题,请告诉我,我会尽力纠正它们。