2015-02-10 18 views
1

以下是.aspx窗體中的代碼處理一組多個複選框的最佳方法是什麼? 如何在ASP.NET WEb窗體和代碼隱藏文件中處理多個複選框

<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"); 
     } 
    } 
+0

更好?只是好奇,這對你意味着什麼?似乎對我來說是非常可讀和直接的代碼。 – Pleun 2015-02-10 17:35:04

+0

有超過15個複選框。只是想知道有更好的解決方案,而不是僅僅爲每個複選框使用if語句。謝謝。 – user2224493 2015-02-10 17:37:21

+1

你有一個副本/貼錯誤 - 秒如果 – fnostro 2015-02-10 17:38:59

回答

0

首先,你的代碼聽起來不錯,乾淨。但如果我是你,我會使用網頁控制而不是HTML。另外,即使不使用Web控件,我也不認爲有必要編寫if語句。只需指定值爲true或false的'checked'屬性即可。最後,如果將複選框嵌入到Web用戶控件中,那麼在多種用法的情況下,這可能會帶來有價值的幫助,當然還有更好的維護。希望它有幫助,祝你好運!

0

如果您可以使用ASP.NET複選框控件而不是輸入標記,則不需要if語句。在代碼後面使用checkBoxID.Checked屬性,它將返回true或false。

相關問題