我有CheckBox列表,我需要添加属性,但我注意到,当我迭代控件时,没有...
var listType = SettingsManager.Get("CRMCaseTypes");
var listStatus = SettingsManager.Get("CRMStatusReasons");
var listTypeItems = ParseSettingList(listType);
var listStatusItems = ParseSettingList(listStatus);
cblCRMType.DataSource = listTypeItems;
cblCRMType.DataBind();
cblCRMStatus.DataSource = listStatusItems;
cblCRMStatus.DataBind();
int index = 0;
foreach (Control c in cblCRMStatus.Controls)
{
CheckBox cb = c as CheckBox;
if (cb != null)
{
cb.Attributes.Add("id", listStatusItems[index].Value);
if (cb.Attributes["id"] == "5")
{
cb.Checked = true;
cb.Enabled = false;
}
}
index++;
}
index = 0;
foreach (Control c in cblCRMType.Controls)
{
CheckBox cb = c as CheckBox;
if (cb != null)
{
cb.Attributes.Add("id", listTypeItems[index].Value);
}
index++;
}
}
有没有办法强制生成复选框?
由于
答案 0 :(得分:1)
当您在DataBind()
上致电CheckBoxList
时,会填充其Items
集合,而非其Controls
集合。
foreach (ListItem item in cblCRMStatus.Items)
{
if (item.Value == "5")
{
item.Selected = true;
item.Enabled = false;
}
}
item.Attributes
属性允许您向复选框添加其他属性。但是,您无法设置id
属性; ASP.NET自动将其设置为递增整数。