0

我有一个复选框,其值是根据列 isAllow 从数据库处理的。我们有 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;
            }
        }

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

4

3 回答 3

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;
            }
        }
于 2013-08-06T10:14:40.127 回答
0

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

...

else
{
    chkBrand.Checked=false;
}

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

break;
于 2013-08-06T10:07:44.773 回答
0

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

 chkBrand.Checked=isAllow;
于 2013-08-06T10:00:09.657 回答