ASP.NET从Repeater获取所有复选框

时间:2014-01-22 17:40:37

标签: c# html asp.net checkbox controls

我使用转发器在内容页面中生成复选框

这两个复选框都有一个唯一的ID,

但是,复选框是通过循环字符串

生成的
<input id=\"Checkbox" + i+ "-" + j + "\" type=\"checkbox\" name=\"CollapseID" + i + "\" />

它可以在网页中正确显示,具有正确的ID及其名称。 而且,我可以通过javascript控制它。

我想问一下,我怎么知道在服务器端检查了那些复选框?

我尝试使用以下代码,但返回null。

foreach (Control control in this.Page.Form.Controls)  
{  
    if (control is CheckBox)  
    {  
        string checkboxValue = ((CheckBox)control).Text;  
    }
}

另外,我试过了:

Control chk = FindControl("Checkbox1-1"); // where "Checkbox1-1" is the checkboxID

HtmlInputCheckBox chk = (HtmlInputCheckBox)FindControl("Checkbox1-1");

但也返回null ...

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您应该在复选框中将属性写为runat="server"

然后

CheckBox cx= repeaterName.FindControl("checkboxId") as CheckBox;

我认为这对你有用。

答案 1 :(得分:0)

如果您使用字符串创建这些复选框,然后将它们转储为HTML。它们将被视为html复选框,无法在服务器端访问。你只能在javascript中选中复选框..你可以将这些值分配给任何隐藏的服务器控件,然后在服务器端使用它。