2012-09-30 21 views
0

我有contanis一個字段名省位一個數據庫表,並增加了像圖案的計數:asp.net中複選框的數字模式?

AB-1 
BC-2 
CD-4 
DE-8 
EF-16.... and so on. 

現在的表項我有一個價值13(省位),這意味着對AB,CD,DE的複選框(加起來13)應該被檢查。

我無法獲得相同的邏輯,如何只能檢查總和加到表中條目的複選框?

回答

0

的電場是利用位標誌。

13是1101二進制。

因此,將值轉換爲位併爲每個複選框分配一個位。

+0

請提供我的提示如何將它們轉換爲位,這是我沒有得到。 –

+0

我不願意給你代碼。當你把自己挖掘出來時,你會學得更多。 –

+0

我應用了邏輯,它適用於較小的複選框。 –

1

您需要檢查值是否按位總計。

if(interestedInValue & totalValue == interestedInValue) 
{ 
    // this value is in the total, check the box 
} 

文檔上& http://msdn.microsoft.com/en-us/library/sbf85k1c(v=vs.71).aspx

例如13 = 1 + 4 + 8
1 == 1 //真
2 == 2 //假
4 == 4 //真
8 == 8 //真正
16 == 16 //假

編輯:更多的澄清

ab.Checked = 1 && ProvinceBit == 1 // checkbox AB 
bc.Checked = 2 && ProvinceBit == 2 // checkbox BC 
... 
+0

我無法獲得該鏈接中的任何內容,請向我提供一些更詳細的信息。 –

+0

該鏈接僅用於在您查找有關&命令的更多信息的情況。針對您的特定問題的解決方案是使用該運算符。我做了一個編輯,希望能夠讓你更清楚你需要做什麼。 – JDwyer

+0

給我一個省13位的想法,休息我會做,因爲我有一個很長的模式,直到4096和更多.... –

0

通過將您的數字轉換爲字符串,您可以轉換爲數組或只是遍歷字符串。有點蠻力,但會給你你需要的。

var value = 13 
string binary = Convert.ToString(value, 2); 
//binary = "1101"