Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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#_.net - Fatal编程技术网

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

C# 如何在不使用任何特定条件的情况下禁用复选框?,c#,.net,C#,.net,我有一个复选框,它的值是根据isAllow列从DB处理的。我们有5个名称,对应于这些名称,我们有diff isAllow属性。如果isAllow的值为true,则选中复选框 对于四个名称,我必须将复选框标记为选中,但是对于五个名称中的一个特定名称,我必须将复选框标记为禁用。我可以通过添加以下条件来实现这一点: if(name=="Josh" && isAllow) { chkBrand.Enable=false; chkBrand.Checked=true; } 我不想

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

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

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;
            }
        }
bool isAllow=false;
bool-SigCard=false;
将oAotluAffinity=bsAffinity.DataSource列为列表;
foreach(OatLuAffinity中的OatLuAffinity oAffinity)
{
if(oAffinity.Name==comboName.SelectedValue.ToString())
{
isAllow=oAffinity.isAllowName;
signCard=AOTHelper.GetHasSigCardValue(workflowid,Acct.AffinityNum,CombopBranch.SelectedValue.ToString(),applicators.AffinityNum,isSignCard,isAllow);
如果(我允许)
{                        
chkBrand.Checked=true;//对于特定名称,我想将复选框设置为禁用,但不想使用该条件。
}
其他的
{
chkBrand.Checked=false;
}
打破
}
}

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

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


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

...

else
{
    chkBrand.Checked=false;
}

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

break;

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

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

chkBrand.Checked=允许;我想,在数据库中添加一个新字段只是为了将复选框设为disable并不好。我将isAllow的5个名称值设置为true,我只想将一个名称的复选框设置为禁用。@Yash,如果不使用
if
语句,则必须将其添加到配置中。这就是你问的问题。显然没有其他办法。如果您不从配置中读取它,那么很明显您将处于静态状态。禁用的名称有什么特别之处?你怎么知道要禁用它?
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;
            }
        }