如果选中了复选框,如何将下拉列表设置为C#中的必填字段

时间:2011-08-08 17:19:18

标签: c# asp.net-mvc checkbox

在ASP.NET MVC 3.5应用程序中。我有一个复选框,“Food / Bev”,这是一个布尔类型,我想知道如何管理它:

如果选中该复选框:

  • 下拉列表Caterer成为必填字段。
  • 除非从列表中选择Caterer选项,否则无法提交请求。

如果未选中该复选框:

  • Caterer下拉列表不是必填字段。

感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

只做一个简单的if条件

if this.checkbox.checked && this.mydropdown.selectedindex=-1
  //code / alert that warns the user you must make a selection

您可以使用?:运算符:

bool b = ((myCheck.Checked && myDropDown.SelectedIndex==-1) ? true : false);

if(b) {
 //stop submit of form as no selection was made
}

或者保持代码简洁明了:

 bool b = this.CheckBox1.Checked && this.DropDownList1.SelectedIndex == -1;
 //when the checkbox is not check Response.Write(b); prints false
//when the checkbox IS checked and no item is selected, Response.Write(b); prints true

答案 1 :(得分:1)

为下拉列表创建RequiredFieldValidator,但将其设置为Enabled=false。然后,选中该复选框后,调用ValidatorEnable函数启用验证器。

这篇文章很旧,但它的信息仍然相关:http://msdn.microsoft.com/en-us/library/aa479045.aspx#aspplusvalid_clientside

答案 2 :(得分:1)

为DropDown添加必需的字段验证器,默认情况下设置Enabled =“false”。使用AutoPostBack =“true”将OnCheckChanged事件添加到CheckBox,并在事件处理程序中将验证程序的启用状态设置为CheckBox的已检查状态。