【发布时间】:2013-07-16 17:31:08
【问题描述】:
我的要求是当用户单击按钮'btnGetCount' 时,用id="form1" 计算直接存在于表单中的TextBox 和CheckBox 的总数。这是我尝试过的代码,但它不计算任何内容,并且计数器保持为零,尽管我在表单中有三个 TextBoxes 和两个 CheckBoxes。但是,如果我删除 foreach 循环并传递 TextBox control = new TextBox(); 而不是当前代码,那么它将计算第一个 TextBox 并且 countTB 将值返回为 1。
protected void btnGetCount_Click(object sender, EventArgs e)
{
Control control = new Control();
int countCB = 0;
int countTB = 0;
foreach (Control c in this.Controls)
{
if (control.GetType() == typeof(CheckBox))
{
countCB++;
}
else if (control is TextBox)
{
countTB++;
}
}
Response.Write("No of TextBoxes: " + countTB);
Response.Write("<br>");
Response.Write("No of CheckBoxes: " + countCB);
}
【问题讨论】:
-
this.Controls? form1.Controls 呢?
-
你是动态添加控件到表单吗?
-
@Valamas-AUS 我也尝试过,但结果相同。
-
@Valamas-AUS 不,我没有动态添加控件。
-
试试
foreach (WebControl c in this.Controls)
标签: c# asp.net checkbox textbox count