给你推荐两种方法,一种是向服务器容器控件里添加子控件(即向runat=server的控件的Controls里添加控件),第二种是就是你的这种拼接HTML的方法不过这种方法必须设置控件的name属性,然后在Request.Form["控件的name"]里获得控件的值,推荐使用第一种方法,更直观一些,第二种无法记录提交以后的状态,代码如下
第一种
后台
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
using System.Web.UI.HtmlControls;
protected void Page_Load( object sender, EventArgs e)
{
for ( int i = 0; i < 4; i++)
{
HtmlInputCheckBox htmlInputCheckBox = new HtmlInputCheckBox(); //这里用CheckBox也是一样的
htmlInputCheckBox.ID = "check" + i;
Container.Controls.Add(htmlInputCheckBox);
}
}
protected void Button1_Click( object sender, EventArgs e)
{
for ( int i = 0; i < 4; i++)
{
Label1.Text += "<br/>" + (Container.FindControl( "check" + i) as HtmlInputCheckBox).Checked.ToString();
}
}
|
前台
1
2
3
4
5
6
|
<form id= "form1" runat= "server" >
<div id= "Container" runat= "server" >
</div>
<asp:Button ID= "Button1" runat= "server" Text= "Button" onclick= "Button1_Click" />
<asp:Label ID= "Label1" runat= "server" ></asp:Label>
</form>
|
第二种
后台
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public string GetCheckBox()
{
return "<input name=\"Checkbox1\" type=\"checkbox\"/>" ; //这里必须设置name,Id没有用
}
protected void Button1_Click( object sender, EventArgs e)
{
if (Request.Form[ "Checkbox1" ] == null ) //如果Checkbox1为未选中状态Request.Form["Checkbox1"]值为null
{
Label1.Text += "<br/>Fasle" ;
}
else //如果Checkbox1为选中状态Request.Form["Checkbox1"]值为on
{
Label1.Text += "<br/>True" ;
}
}
|
前台
1
2
3
4
5
6
7
|
<form id= "form1" runat= "server" >
<div>
<%=GetCheckBox() %>
</div>
<asp:Button ID= "Button1" runat= "server" Text= "Button" OnClick= "Button1_Click" />
<asp:Label ID= "Label1" runat= "server" ></asp:Label>
</form>
|