Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检测复选框列表检查了多个项目_C# - Fatal编程技术网

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

C# 检测复选框列表检查了多个项目,c#,C#,我的复选框列表包含3项A、B、C。 如果用户检查A,这是我想要的,那么用户将获得2分 否则用户获得0分 我的问题是,每当用户检查超过3项时,用户仍然可以获得2分,而根据权限,用户应该获得零分,因为用户检查了A、B、C 那个么,若用户在复选框列表中选中了超过1个复选框,那个么用户将获得0分 范例 if(A==A){ //user obtain 2 marks }else{ //user obtain 0 marks } dtr = cmd.ExecuteReader(); if

我的复选框列表包含3项A、B、C。 如果用户检查A,这是我想要的,那么用户将获得2分 否则用户获得0分

我的问题是,每当用户检查超过3项时,用户仍然可以获得2分,而根据权限,用户应该获得零分,因为用户检查了A、B、C

那个么,若用户在复选框列表中选中了超过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();

如果您只想让其他复选框获得仅用于选中某个复选框的标记,则需要选中未选中的复选框

大概是

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

<>如果你只希望一个选择得到标记,那么你应该考虑使用单选按钮而不是复选框。那你只需要检查一下

 if ( A == A) { //get marks }
您可以做的另一件事是在每个复选框上标记其值

然后,当您选中所有复选框的结果时,您是否会根据选中的标记授予分数

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

好的,我找到了答案,谢谢帮助=)每检查一次,选中的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);

ABC只是一个例子,如果我的复选框列表项超过10,该怎么办=xaiks,所以在复选框旁边,checkboxlist没有办法得到我想要的?因为我计划使用grid view加载checkboxlist供用户在线练习。无论如何,复选框也有同样的问题,一旦单击另一个复选框,用户仍将获得2分