Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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#_Asp.net_.net - Fatal编程技术网

C# 复选框列表循环不工作

C# 复选框列表循环不工作,c#,asp.net,.net,C#,Asp.net,.net,我试图根据数据源在复选框列表中选择值。我在复选框列表中有五项,在数据源中有三项,但在循环中我只选择了一项 if (ddlUserId.SelectedIndex != 0) { RoleDetails rd; rd = CatalogAccess.GetSingleUserRole(ddlUserId.SelectedValue.ToString()); for (int i = 0; i < cblRoles.Items.Count; i++) {

我试图根据数据源在
复选框列表中选择值。我在
复选框列表中有五项,在数据源中有三项,但在循环中我只选择了一项

if (ddlUserId.SelectedIndex != 0)
{
   RoleDetails rd;
   rd = CatalogAccess.GetSingleUserRole(ddlUserId.SelectedValue.ToString());

   for (int i = 0; i < cblRoles.Items.Count; i++)
   {
      cblRoles.Items.FindByValue(rd.RoleID.ToString()).Selected = true;
   }
}

当您使用for循环时,您需要使用索引值(这里是“i”),如


对您在答案中的建议以及OP中的代码没有获得所需结果的原因进行一点解释可能会有所帮助。仍然只选择了一项。我已发布代码。@ayha对于所选用户是否有多个角色?对于所选用户有三个角色,但它选择了第一个角色(表中的roleId 1)。我删除了表中的第一项并尝试了,然后它没有选择任何其他内容;rd=CatalogAccess.GetSingleUserRole(ddlUserId.SelectedValue.ToString());我认为这样你只能扮演一个角色。请确保您正在获取所有分配的角色。请共享复选框列表绑定代码我已发布绑定代码。您的复选框列表是否有多个值相同的复选框?只有一个RoleDetails对象,因此只有一个RoleID。因此,除非我的问题的答案是肯定的,否则您将只能选中一个复选框。
RoleDetails rd;

for (int i = 0; i < cblRoles.Items.Count; i++)
{            
   rd = CatalogAccess.GetSingleUserRole(ddlUserId.SelectedValue.ToString());

   if (cblRoles.Items[i].Value == rd.RoleID.ToString())
      cblRoles.Items[i].Selected = true;
}
  cblRoles.DataSource = CatalogAccess.GetRoles();
  cblRoles.DataTextField = "RoleDetails";
  cblRoles.DataValueField = "RoleId";
  cblRoles.DataBind();
 for (int i = 0; i < cblRoles.Items.Count; i++)
 {
   if(cblRoles.Items[i].Value == rd.RoleID.ToString())
           cblRoles.Items[i].Selected = true;
 }
 foreach (ListItem li in cblRoles.Items)
    {
        if (rd.RoleID.ToString() ==  li.Value)
        {
            li.Selected = true;
        }
        else
        {
            li.Selected = false;
        }
    }