C#ASP.Net-如何根据DropDownList中的选定值显示文本框

C#ASP.Net-如何根据DropDownList中的选定值显示文本框,c#,asp.net,webforms,C#,Asp.net,Webforms,我试图根据Dropdownlist中的选定值显示某些文本框。由于某些原因,它不起作用-当在dropdownlist中选择特定项时,inputbox在页面上都不可见。希望得到反馈。提前谢谢 以下是相关代码: aspx页面: <asp:DropDownList ID="AreaDropDownList" runat="server" OnSelectedIndexChanged="AreaDropDownList_SelectedIndexChanged" AutoPostBack="True

我试图根据Dropdownlist中的选定值显示某些文本框。由于某些原因,它不起作用-当在dropdownlist中选择特定项时,inputbox在页面上都不可见。希望得到反馈。提前谢谢

以下是相关代码:

aspx页面:

<asp:DropDownList ID="AreaDropDownList" runat="server" OnSelectedIndexChanged="AreaDropDownList_SelectedIndexChanged" AutoPostBack="True">
            <asp:ListItem></asp:ListItem>
            <asp:ListItem>Rectangle</asp:ListItem>
            <asp:ListItem>Triangle</asp:ListItem>
            <asp:ListItem>Trapezoid</asp:ListItem>
            <asp:ListItem>Circle</asp:ListItem>
            <asp:ListItem>Sector Of Circle</asp:ListItem>
            <asp:ListItem>Ellipse</asp:ListItem>
        </asp:DropDownList>

       <asp:TextBox ID="InputTextBox1" runat="server" AutoPostBack="True" Visible="TRUE"></asp:TextBox>
       <asp:TextBox ID="InputTextBox2" runat="server" AutoPostBack="True" Visible="TRUE"></asp:TextBox>
       <asp:TextBox ID="InputTextBox3" runat="server" AutoPostBack="True" Visible="TRUE"></asp:TextBox>

也许您需要使用
.Text
属性 而不是
。SelectedValue
在If语句中

 if (AreaDropDownList.Text == "")
            {
                InputTextBox1.Visible = false;
                InputTextBox2.Visible = false;
                InputTextBox3.Visible = false;
            }

在M.Ayoub的帮助下,我通过稍微更改代码逻辑解决了这个问题。以下代码放置在Page_Load event函数中,现在我可以控制哪个文本框可见:

if ((RadioButtonList1.SelectedValue != "Area Calculator") &&   (RadioButtonList1.SelectedValue != "Trigonometric Calculator")
            && (RadioButtonList1.SelectedValue != "Area Calculator"))
            {
                arithmetic.Visible = false;
                trig.Visible = false;
                CalcArea.Visible = false;
        }
根据M.Ayoub的反馈做出了另外两个更改:第一个是使用SelectedItem.Text而不是SelectedValue作为dropdownlist。第二个是在区域DropDownList_SelectedIndexChanged中设置else块。代码如下:

 protected void AreaDropDownList_SelectedIndexChanged(object sender, EventArgs e)
        {
 if (AreaDropDownList.SelectedItem.Text == "")
{
inputbox1.Visible = false;
                inputbox2.Visible = false;
                inputbox3.Visible = false;
                }
else if (AreaDropDownList.SelectedItem.Text == "Rectangle")
            {
inputbox1.Visible = true;
                inputbox2.Visible = true;
                inputbox3.Visible = false;

            }

else if (AreaDropDownList.SelectedItem.Text == "Triangle")
            {
               inputbox1.Visible = true;
                inputbox2.Visible = true;
                inputbox3.Visible = false;
            }

else if (AreaDropDownList.SelectedItem.Text == "Trapezoid")
            {
inputbox1.Visible = true;
                inputbox2.Visible = true;
                inputbox3.Visible = true;
            }

else if (AreaDropDownList.SelectedItem.Text == "Circle")
            {
inputbox1.Visible = true;
                inputbox2.Visible = false;
                inputbox3.Visible = false;

            }

else if (AreaDropDownList.SelectedItem.Text == "Sector")
            {

               inputbox1.Visible = true;
                inputbox2.Visible = true;
                inputbox3.Visible = false;
            }

else if (AreaDropDownList.SelectedItem.Text == "Ellipse")
            {
inputbox1.Visible = true;
                inputbox2.Visible = true;
                inputbox3.Visible = false;

            }

            else
            {
                inputbox1.Visible = true;
                inputbox2.Visible = true;
                inputbox3.Visible = true;
            }

你好,阿尤布,谢谢你的反馈。我已将.SelectedValue更改为.Text,但结果仍然相同。谢谢,我已将else块放回原处。未观察到输出变化。当我在UI中更改下拉列表值时(例如,从圆形更改为三角形),不会显示任何输入框。但是当我点击下拉列表时,我可以看到三角形的输入框。我想这和回邮有关,但还没弄明白。我很感谢你的反馈。你在页面加载事件中写了什么吗?是的,它有以下条目:CalcArea.Visible=false;注释掉这一行确实解决了这个问题,但在加载页面时它不会隐藏这个特定区域。是否有一种方法可以在最初加载页面时隐藏此区域,但不会影响Dropdownlist的值选择(隐藏和显示文本框)?请详细说明“页面加载”方法中通常需要的更改。
 protected void AreaDropDownList_SelectedIndexChanged(object sender, EventArgs e)
        {
 if (AreaDropDownList.SelectedItem.Text == "")
{
inputbox1.Visible = false;
                inputbox2.Visible = false;
                inputbox3.Visible = false;
                }
else if (AreaDropDownList.SelectedItem.Text == "Rectangle")
            {
inputbox1.Visible = true;
                inputbox2.Visible = true;
                inputbox3.Visible = false;

            }

else if (AreaDropDownList.SelectedItem.Text == "Triangle")
            {
               inputbox1.Visible = true;
                inputbox2.Visible = true;
                inputbox3.Visible = false;
            }

else if (AreaDropDownList.SelectedItem.Text == "Trapezoid")
            {
inputbox1.Visible = true;
                inputbox2.Visible = true;
                inputbox3.Visible = true;
            }

else if (AreaDropDownList.SelectedItem.Text == "Circle")
            {
inputbox1.Visible = true;
                inputbox2.Visible = false;
                inputbox3.Visible = false;

            }

else if (AreaDropDownList.SelectedItem.Text == "Sector")
            {

               inputbox1.Visible = true;
                inputbox2.Visible = true;
                inputbox3.Visible = false;
            }

else if (AreaDropDownList.SelectedItem.Text == "Ellipse")
            {
inputbox1.Visible = true;
                inputbox2.Visible = true;
                inputbox3.Visible = false;

            }

            else
            {
                inputbox1.Visible = true;
                inputbox2.Visible = true;
                inputbox3.Visible = true;
            }