隐藏/显示基于Dropdownbox选择的表单

时间:2012-10-19 20:53:08

标签: c# javascript asp.net asp.net-mvc ado.net

我环顾四周,没找到任何具体的东西。

是否有关于如何根据是否选择了值来显示/隐藏表单或文本框的教程。

我有类似这个Dropdown框的内容(Add,item1,item2,item3等)

如果选择添加,则显示一个表单以添加一些属性,例如(名字,姓氏等)。否则它只会对所选项目执行操作。

3 个答案:

答案 0 :(得分:0)

我会在客户端代码中连接它。在JavaScript或jQuery中处理select的onchange事件并将处理程序绑定到它。由于“添加”是唯一会显示表单的人,因此在您的处理程序中检查所选值,如果是“添加”的值,则显示表单。如果是任何其他值,请隐藏表单。

如果要在服务器代码中执行此操作,只需处理更改选择的事件,并以此方式设置表单的visibility属性。无论哪种方式都应该很容易。

在客户端上执行此操作可以避免在回发时编码,同时消除了处理来自服务器的请求的责任。

答案 1 :(得分:0)

<select id="target">
    <option value="option1" selected="selected">Add</option>
    <option value="option2">Item1</option>
  </select>

<input type="text" class="textboxclass" />

<div class="someform">
//content
</div>

someform类的默认css显示属性为none,例如:

.someform{display:none;}

Jquery脚本

<script>
$('#target').change(function() {
  var name = $('#target option:selected'),text(); //Item1
  var id = $('#target').val(); // option2

  if(id =="option2"){
   //your logic for this option
   //hide textbox
   $('.textboxclass').hide();
   $('.someform').show();
   }else{
   $('.textboxclass').show();
   $('.someform').hide();

}
   //other if else logic

});
</script>

因为没有安装任何软件的笔记本电脑上没有测试。

答案 2 :(得分:0)

如果你想从服务器端执行此操作,则需要将DrowpDown列表的AutoPostBack propetry设置为true,

和DropdownList的SelectedIndexChanged事件

试试这个,

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
     if (DropDownList1.SelectedIndex == 0)
     {
         entryForm.Visible = true;
         viewForm.Visible = false;
     }
     else if (DropDownList1.SelectedIndex == 1)
     {
         entryForm.Visible = false;
         viewForm.Visible = true;

}

但这不是一个好的方法,我建议按照上面给出的答案,并使用JavaScript或JQuery