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