我有一个Repeater
控件,可以创建动态数量的CheckBoxList
控件,每个列表都有一组不同的ListItems
。
我已经完成了这部分,但我遇到的问题是如何保存这些动态创建的框的已检查状态。我无法了解如何获取这些CheckBoxList
控件的列表。
这是我正在尝试做的一些伪代码:
foreach (Item i in MyRepeater)
{
if (i.ItemType is CheckBoxList)
{
foreach (ListItem x in i)
{
update table set tiChecked = x.Checked
where table.id = i.id and table.typeid = x.id
}
}
}
我有与CheckBoxList
的ID以及与数据库中的ID相对应的ListItem
。
修改
当然,在我问之后,我发现了。这似乎让我得到了我想要的东西
foreach (RepeaterItem tmp in rptReportList.Items)
{
if (tmp.ItemType == ListItemType.Item)
{
foreach (Control c in tmp.Controls)
{
if (c is CheckBoxList)
{
DisplayMessage(this, c.ID.ToString());
}
}
}
}
答案 0 :(得分:3)
您需要深入了解RepeaterItem
:
// repeater item
foreach (Control cr in MyRepeater.Controls)
{
// controls within repeater item
foreach (Control c in cr.Controls)
{
CheckBoxList chklst = c as CheckBoxList;
if (chklst != null)
{
foreach (ListItem i in chklst.Items)
{
string valueToUpdate = i.Value;
string textToUpdate = i.Text;
bool checkedToUpdate = i.Selected;
// Do update
}
}
}
}