我有一个复选框,其值是根据列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;
}
}
我发现很难得到这个。任何帮助都会很棒。
答案 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;
}
}