如何处理ASP.NET WEb表单和代码隐藏文件中的多个复选框

时间:2015-02-10 17:30:38

标签: asp.net

以下是.aspx网络表单中的代码处理一组多个复选框的最佳方法是什么。       

 <input id="nonunionexempt" type="checkbox" value="0"       name="employeeType" tabindex="8" runat="server" />

<input id="nonexempthourly" type="checkbox" value="1" name="employeeType" tabindex="9" />

<input id="eleven99" type="checkbox" value="2" name="employeeType" tabindex="10" />

<input id="nysna" type="checkbox" value="3" name="employeeType" tabindex="11" />

<input id="cir" type="checkbox" value="4" name="employeeType" tabindex="12" />

以下是文件背后的代码有没有更好的方法来处理多个复选框?

  protected void SaveEmployee()
     {
         Employee model = new Employee();

         if (nonunionexempt.Checked)
         {
            model.EmployeeType = nonunionexempt.Value;
         }
         if (nonunionexempt.Checked)
         {
            model.EmployeeType = nonexempthourly.Value;
         }

          IValueProvider provider = new  FormValueProvider(ModelBindingExecutionContext);
         if (TryUpdateModel<Employee>(model, provider))
         {
             LoaRepository.saveData(model);               
         }
        else
        {
            throw new FormatException("Could not model bind");
        }
    }

2 个答案:

答案 0 :(得分:0)

如果您可以使用ASP.NET Checkbox控件而不是输入标签,那么您将不再需要if语句。在代码后面使用checkBoxID.Checked属性,它将返回true或false。

答案 1 :(得分:0)

首先,您的代码听起来很干净。但如果我是你,我会使用网页控件而不是HTML控件。此外,即使不使用Web控件,我也认为不需要编写if语句。只需指定'checked'属性,该属性的值为true或false。最后,如果将复选框嵌入到Web用户控件中,那么在多次使用的情况下,这可以带来有价值的帮助,当然还有更好的维护。希望它有所帮助,祝你好运!