使用 findcontrol 查找复选框列表 ID 的问题
problems with finding checkboxlist ID with findcontrol
谁能帮我解决以下问题?:
我为我的列表中的每个项目动态创建一个复选框列表控件。我将每个复选框列表放在相关的 div.
上
CheckBoxList cblist = new CheckBoxList();
foreach (Category cat in Data.Instance.Listcategorys())
{
if (category.TypeID == parameterid)
{
ListItem item = new ListItem(category.Name, category.ID.ToString());
cblist.ID = "cblist" + parameterid;
divRowHeader.Controls.Add(cblist );
cblist.Items.Add(item);
}
}
每个 cheackboxlist 包含基于 "parameterid" 的自己的项目。
我必须检查检查了哪些项目,所以让我进行 foreach 循环以找到控件:
foreach (Control c in div.Controls)
{
CheckBoxList cblfound = (((CheckBoxList)c.FindControl("???")));
foreach (ListItem item in cblfound Items)
{
if (item.Selected)
{}
}
问题就在这里。 .Net 为每个复选框列表创建自己的 ID。我如何才能使用 .findcontrol 找到控件?我正在使用 .net 3.5
提前致谢
也许您可以使用 IEnumerable.OfType() 和一些额外的 linq 重新考虑您的方法,例如:
var selectedControls = div.Controls.OfType(CheckBoxList).Where(item => item.Selected);
foreach(CheckBoxList item in selectedControls)
{
...
}
谁能帮我解决以下问题?: 我为我的列表中的每个项目动态创建一个复选框列表控件。我将每个复选框列表放在相关的 div.
上CheckBoxList cblist = new CheckBoxList();
foreach (Category cat in Data.Instance.Listcategorys())
{
if (category.TypeID == parameterid)
{
ListItem item = new ListItem(category.Name, category.ID.ToString());
cblist.ID = "cblist" + parameterid;
divRowHeader.Controls.Add(cblist );
cblist.Items.Add(item);
}
}
每个 cheackboxlist 包含基于 "parameterid" 的自己的项目。
我必须检查检查了哪些项目,所以让我进行 foreach 循环以找到控件:
foreach (Control c in div.Controls)
{
CheckBoxList cblfound = (((CheckBoxList)c.FindControl("???")));
foreach (ListItem item in cblfound Items)
{
if (item.Selected)
{}
}
问题就在这里。 .Net 为每个复选框列表创建自己的 ID。我如何才能使用 .findcontrol 找到控件?我正在使用 .net 3.5
提前致谢
也许您可以使用 IEnumerable.OfType() 和一些额外的 linq 重新考虑您的方法,例如:
var selectedControls = div.Controls.OfType(CheckBoxList).Where(item => item.Selected);
foreach(CheckBoxList item in selectedControls)
{
...
}