2014-03-12 152 views
1

我有20個複選框來對付,但我不想寫20倍的IF像複選框更新功能

 If MGTReview.GetCPO = 1 Then 
      Checkbox1.Checked = True 
     Else : Checkbox1.Checked = False 
     End If 
數據

拉,然後寫20倍的IF像

  Dim CPO as boolean 
      If Checkbox1.Checked = True, CPO=1 
      Else: CPO=0 
      End If 

所以我有一個註冊的用戶控制,以及公共財產下面是:

Public Property checkResult() As Integer 
    Get 
     Return _checkResult 
    End Get 
    Set(ByVal value As Integer) 
     _checkResult = value 
     Select Case _checkResult 
      Case 1 
       CheckBoxA.Checked = True 
      Case 0 
       CheckBoxA.Checked = False 
     End Select 
    End Set 
     End Property 

和後面的頁面我的VB代碼是

 Checkbox2.checkResult = MGTReview.GetCPOP 
     Checkbox3.checkResult = MGTReview.GetCCA 
     Checkbox4.checkResult = MGTReview.GetCCAP 
     Checkbox5.checkResult = MGTReview.GetCR 
     Checkbox6.checkResult = MGTReview.GetCP 

...

現在從1到檢查=真正的作品轉換很好,我可以看到他們的網站上。但是,如果我取消選中一個框並單擊「更新」,我的值不會從1更改爲0.

我不知道應該寫什麼類?我應該寫另一個公共財產嗎(我實際上對公共財產不熟悉)?

感謝您的諮詢!

+0

您的更新代碼如何? – ajakblackgoat

+0

您可能需要考慮更多描述性名稱作爲您的複選框控件。 – Matt

回答

1

如果這是真的,你想怎麼辦呢,我想它會更容易做這樣的事情:

chkCPOP.Checked = (MGTReview.GetCPOP = 1) 

你可能想看看數據綁定的複選框控件,有alook在這個問題: ASP.NET Binding integer to CheckBox's Checked field

+0

這看起來不錯!我會試一試,讓你知道結果!謝謝你的建議! – user3344443

+0

非常感謝!它工作得很好!我現在可以忘記註冊用戶控制。 – user3344443