C#ASP.Net-如何根据DropDownList中的选定值显示文本框
我试图根据Dropdownlist中的选定值显示某些文本框。由于某些原因,它不起作用-当在dropdownlist中选择特定项时,inputbox在页面上都不可见。希望得到反馈。提前谢谢 以下是相关代码: aspx页面: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
<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;
}