我认为这会奏效。但它不起作用。它永远不会进入if(c是HtmlInputCheckBox)
private string GetAllCheckBoxes(ControlCollection controls)
{
StringBuilder sb = new StringBuilder();
foreach (Control c in controls)
{
if (c.HasControls())
{
GetAllCheckBoxes(c.Controls);
}
else
{
if (c is HtmlInputCheckBox)
{
CheckBox cb = c as CheckBox;
if (cb.Checked)
{
sb.Append(cb.ID + "_1");
}
else
{
sb.Append(cb.ID + "_0");
}
}
}
}
return sb.ToString();
}
更新:c正在抛出一些错误。
Parent = {InnerText = '((System.Web.UI.HtmlControls.HtmlContainerControl)(((System.Web.UI.HtmlControls.HtmlGenericControl)(c.Parent)))).InnerText' threw an exception of type 'System.Web.HttpException'}
答案 0 :(得分:0)
HtmlInputCheckBox
和CheckBox
是不同的类,不会从其他类继承。一个is
测试对另一个不起作用,反之亦然。听起来像控件可能是CheckBox
的一个实例,所以将条件更改为:
if (c is CheckBox)