C# 根据下拉框选择显示文本框

C# 根据下拉框选择显示文本框,c#,textbox,dropdownbox,C#,Textbox,Dropdownbox,我想根据用户从下拉框中选择的数字显示多个文本框。示例如下: 因此,无论在下拉列表中选择哪个数字,页面都会刷新并显示该数量的文本框。我需要去20个领域。有没有一种方法可以在C#中实现这一点,或者使用Ajax控件工具包 ASPX 试试这个 <asp:Label ID="NumAccounts" runat="server" Text="# of Accounts"></asp:Label> <asp:DropDownList ID=

我想根据用户从下拉框中选择的数字显示多个文本框。示例如下:

因此,无论在下拉列表中选择哪个数字,页面都会刷新并显示该数量的文本框。我需要去20个领域。有没有一种方法可以在C#中实现这一点,或者使用Ajax控件工具包

ASPX


试试这个

<asp:Label ID="NumAccounts" runat="server" Text="# of Accounts"></asp:Label>      <asp:DropDownList
            ID="EmpNameList" runat="server" onselectedindexchanged="NumAccountsList_SelectedIndexChanged" 
                        AutoPostBack="True">
             </asp:DropDownList>

     <div>
            <asp:PlaceHolder id="ContentPlaceHolder1" runat="server" />
        </div>



protected void NumAccountsList_SelectedIndexChanged(object sender, EventArgs e)
    { 
              ContentPlaceHolder1.Controls.Clear();
               for(i=0; i<Convert.ToInt32(EmpNameList.SelectedItem.Value); i++)
                  {

                               TextBox tx= new TextBox();
                               tx.ID="tx"+i;
                               ContentPlaceHolder1.Controls.Add(tx);
                               ContentPlaceHolder1.Controls.Add(new LiteralControl("<br />"));
                  }

    }  

受保护的void numaccounts列表\u SelectedIndexChanged(对象发送方,事件参数e)
{ 
contentplaceholder 1.Controls.Clear();
对于(i=0;i肯定有。
使用:

int-ctrlCount=Convert.ToInt32(DropDownList1.SelectedItem.Value);
int CTRLTOPOS=30;
lbl_name.Text=“name:”;

对于(int i=0;iTry looking@Nathan谢谢Nathan,这非常有帮助!我得到“ContentPlaceHolder只能在.master文件中使用。”当我尝试运行此操作时。对不起,应该是占位符工作得很好!非常感谢,一个简单的问题,现在它只是将所有文本框放在一行上,如果我想使用换行符将它们放在不同的行上,我将在哪里放置
<asp:Label ID="NumAccounts" runat="server" Text="# of Accounts"></asp:Label>      <asp:DropDownList
            ID="EmpNameList" runat="server" onselectedindexchanged="NumAccountsList_SelectedIndexChanged" 
                        AutoPostBack="True">
             </asp:DropDownList>

     <div>
            <asp:PlaceHolder id="ContentPlaceHolder1" runat="server" />
        </div>



protected void NumAccountsList_SelectedIndexChanged(object sender, EventArgs e)
    { 
              ContentPlaceHolder1.Controls.Clear();
               for(i=0; i<Convert.ToInt32(EmpNameList.SelectedItem.Value); i++)
                  {

                               TextBox tx= new TextBox();
                               tx.ID="tx"+i;
                               ContentPlaceHolder1.Controls.Add(tx);
                               ContentPlaceHolder1.Controls.Add(new LiteralControl("<br />"));
                  }

    }  
int ctrlCount=Convert.ToInt32(DropDownList1.SelectedItem.Value);
int ctrlTopPos=30;

lbl_name.Text="Name:";
for(int i=0;i<ctrlCount;i++)
{
Label lbl_name=new Label();
TextBox txt_cur=new TextBox();
txt_cur.Top=ctrlTopPos+(i*30);
lbl_name.top=ctrlTopPos+(i*30);
txt_cur.left=lbl_name.Width+30;
Panel1.Controls.Add(lbl_name);
Panel1.Controls.Add(txt_cur);
}