C#获取动态生成的CheckBox值

时间:2022-03-16 11:44:53

给你推荐两种方法,一种是向服务器容器控件里添加子控件(即向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>