从下拉列表中选择值时显示不同的页面或UI?

时间:2014-09-15 03:07:34

标签: c# javascript php asp.net

我必须在我的下拉列表中重视。

<asp:DropDownList ID="DropDownList2" runat="server">
    <asp:ListItem>Select</asp:ListItem>
    <asp:ListItem>Individual Form</asp:ListItem>
    <asp:ListItem>Entity Form</asp:ListItem>
</asp:DropDownList>

单个表单和实体表单是两个具有文本框和下拉列表的Web表单。首次启动页面或调试时,我希望显示此下拉列表,当用户选择个人或实体时,文本框和Web表单的内容应加载到下面。这怎么可能?

2 个答案:

答案 0 :(得分:0)

将内容置于ASP:Panel中,Visible设置为false。然后设置下拉列表以执行Autopostback = true并订阅所选列表项已更改事件

在该事件中,将面板设置为visible = true。

如果您需要ajax支持,请将所有内容放在ASP:UpdatePanel中。

或者,您可以使用Javascript并向控件/页面添加IPostBackEventHandler接口,并使用__DoPostBack(ctrlId,'somekey')进行回发,然后在IPostBackEventHandler上的PostBack事件中将面板设置为Visible = true。 / p>

您也可以使用css隐藏它并使用javascripot将其打开,但这将是超级的,用户可以使用网络工具自行打开它,例如破解它。

答案 1 :(得分:0)

您可以使用DropDownList的OnSelectedIndexChanged事件。

<asp:DropDownList ID="DropDownList2" runat="server" Autopostback=true OnSelectedIndexChanged="DropDownList2_IndexChanged">
    <asp:ListItem Value="0">Select</asp:ListItem>
    <asp:ListItem Value="1">Individual Form</asp:ListItem>
    <asp:ListItem Value="2">Entity Form</asp:ListItem>
</asp:DropDownList>

为您的用户界面选择两个不同的面板。

<asp:Panel runat="server" ID="Panel1">
 ... Your content here
</asp:Panel>
<asp:Panel runat="server" ID="Panel2">
 ... Your other content here
</asp:Panel>

Now in code behind write OnSelectedIndexChanged event

protected void DropDownList2_IndexChanged(object sender,EventArgs e)
{
  //Now check value of dropdown list and show or hide panel according to it.
  if(DropDownList2.SelectedValue=="1")
  {
    Panel1.Visible=true;
    Panel2.Visible=false;
  }
  else if(DropDownList2.SelectedValue=="2")
  {
    Panel1.Visible=false;
    Panel2.Visible=true;
  }
}