检测复选框列表检查了多个项目

时间:2012-02-02 03:01:26

标签: c#

我的复选框列表包含3个项目A,B,C。 如果用户检查A是我想要的,那么用户将获得2个标记 其他用户获得0分

我的问题是,每当用户检查超过3个项目时,用户仍然可以获得2个标记,而权利用户应该获得零标记,因为用户选中了A,B,C?

那么如果用户在checkboxlist中检查了多个方框,那么用户将获得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();

3 个答案:

答案 0 :(得分:1)

如果您只想要一个选择来获得标记,那么您应该考虑使用单选按钮而不是复选框。那你只需要检查

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

你可以做的另一件事是用价值

标记每个复选框

然后当您检查所有复选框的结果时,您将根据选中的标签奖励标记?

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

答案 1 :(得分:0)

你需要检查其他方框是否也未经检查过,如果你只想让它们获得仅用于检查A的标记

类似

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

答案 2 :(得分:0)

好吧,我想出了答案,感谢帮助=)每次检查numSelected将增加1,一旦numSelected更多2,用户将得到0marks

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);