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

添加新行->>>这是我想创建的另一件事

有什么想法吗??

asp.net使用C#代码插入新的下拉列表

在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_InitPage_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) });
    }
}

我还没有测试过这个代码,所以如果你发现任何问题,请告诉我,我会尽力纠正它们。