2012-02-02 101 views
0

我的複選框列表包含3個項目A,B,C。 如果用戶檢查某一這正是我想那麼用戶將獲得2馬克 其他用戶獲得0馬克檢測checkboxlist檢查多個項目

我的問題是,每當用戶檢查超過3項,用戶仍然能夠得到2-痕跡,而由權利用戶應該獲得零分,因爲用戶檢查了A,B,C?

因此如何使,如果用戶已經在CheckBoxList的檢查超過1個框,然後用戶將獲得0馬克

例如

if(A==A){ 
    //user obtain 2 marks 
}else{ 
    //user obtain 0 marks 
} 

dtr = cmd.ExecuteReader(); 

if (dtr.Read()) 
{ 
    if (dtr["Answer"].ToString() == CheckBoxList1.Text.ToString()) 
    { 
     Label2.Text = "2 marks"; 
    } 
    else 
    { 
     Label2.Text = "0 marks"; 
    } 
} 
else 
{ 
    Response.Write("db not read"); 
} 

dtr.Close(); 

回答

0

好,我想出了答案,感謝您的幫助=)每次檢查numSelected將增加1,一旦numSelected超過2,用戶將得到0馬克

int numSelected = 0; 

foreach (ListItem li in CheckBoxList1.Items) 
{ 
    if (li.Selected) 
    { 
     numSelected = numSelected + 1; 
    } 
} 

Response.Write("Total Number Of CheckBoxes Selected:"); 

Response.Write(numSelected); 
0

你需要檢查的其他框被取消檢查,以及如果你只想要他們得到的標記只有檢查的

所以像

if(A==A && B!=B && C!=C){ 
    //get marks 
} else { 
    //no marks 
} 
+0

ABC只是一個例子,如果我的checkboxlist項目如何超過10? = x – 2012-02-02 03:07:57

1

如果你只想要一個選擇獲得標記,那麼你應該考慮使用單選按鈕而不是複選框。那麼只需要檢查

if (A == A) { //get marks } 

你可以做的另一件事是標籤功能與價值它的價值每個複選框

那麼當你檢查,你會基於獎標誌的所有複選框結果檢查標籤?

Checkbox b = new Checkbox(); 
b.Tag = markValue; 
+0

aiks,所以旁邊的複選框沒有辦法讓checkboxlist得到我想要的東西? – 2012-02-02 03:14:10

+0

因爲我打算用網格視圖加載checkboxlist給用戶做網上練習 – 2012-02-02 03:15:00

+0

反正checkbox有同樣的問題,一旦複選框被點擊,用戶還會得到2個標記 – 2012-02-02 03:26:33

相關問題