如何在不使用任何特定条件的情况下禁用复选框?

时间:2013-08-06 09:57:41

标签: c# .net

我有一个复选框,其值是根据列isAllow从DB处理的。我们有5个名字,对应这些名称,我们有diff isAllow属性。如果isAllow的值为true,则选中复选框。

对于四个名字,我必须选中复选框,但是对于5个中的一个特定名称,我必须将复选框标记为已禁用。我可以通过添加条件来实现这一点:

if(name=="Josh" && isAllow)
{
  chkBrand.Enable=false;
  chkBrand.Checked=true;
}

我不想在这里使用上述条件。我只想在没有条件的情况下将复选框设置为禁用特定名称。

以下是我使用过的代码:

        bool isAllow = false;
        bool SigCard = false;

        List<AOTLuAffinity> oAotluAffinity = bsAffinity.DataSource as List<AOTLuAffinity>;

        foreach (AOTLuAffinity oAffinity in oAotluAffinity)
        {
            if (oAffinity.Name == comboName.SelectedValue.ToString())
            {

                isAllow = oAffinity.isAllowName;
                signCard = AOTHelper.GetHasSigCardValue(workflowid, Acct.AffinityNum, comboPaBranch.SelectedValue.ToString(), Applicants.AffinityNum, isSignCard, isAllow );
                if (isAllow)
                {                        
            chkBrand.Checked=true;// here for a specific name, I want to make the checkbox as disabled, but I dont want to use the condition.
                }
                else
                {
                    chkBrand.Checked=false;
                }
                break;
            }
        }

我发现很难得到这个。任何帮助都会很棒。

3 个答案:

答案 0 :(得分:0)

循环从数据库获取的项目,每次读取值(isAllow),然后

 chkBrand.Checked=isAllow;

答案 1 :(得分:0)

我认为这里正确的方法是在数据库中添加一个新字段isDisabled,然后在循环中评估该字段:

...

else
{
    chkBrand.Checked=false;
}

if (oAffinity.isDisabled)
{
    chkBrand.Enabled = false;
}

break;

答案 2 :(得分:0)

您可以使用LINQ条件检查列表中的特定名称。您必须声明如下列表:

List<Person> peopleList = new List<Person>();

这是你的条件代码:

        foreach (AOTLuAffinity oAffinity in oAotluAffinity)
        {
            if (oAffinity.Name == comboName.SelectedValue.ToString())
            {
                isAllow = oAffinity.isAllowName;
                signCard = AOTHelper.GetHasSigCardValue(workflowid, Acct.AffinityNum, comboPaBranch.SelectedValue.ToString(), Applicants.AffinityNum, isSignCard, isAllow );

                chkBrand.Checked = 
                                   peopleList
                                   .Count(c => c.Name ==  comboName.SelectedValue.ToString()) > 0 ? true : false;

                break;
            }
        }