我需要获取仅选中的复选框的值和ID。
的Index.aspx
<asp:Button ID="Button1" runat="server" Text="Download Files" OnClick="LoadFiles" />
<asp:Literal runat="server" ID="SubCategory" />
背后的代码
自动生成的复选框:
StringBuilder sb = new StringBuilder("");
SqlDataReader dr = null;
dr = cmd.ExecuteReader();
while (dr.Read())
{
sb.Append("<input runat=\"server\" type=\"checkbox\" value=\"" + dr["Attachment_Name"].ToString() + "\" name=\"chk_" + dr["Attachment_ID"].ToString() + "\">" + dr["Attachment_Name"].ToString() + "</input> ");
}
dr.NextResult();
SubCategory.Text = sb.ToString();
我试过这个但是只有当它是CheckboxList时才有效:(这段代码来自我的另一个项目)
string values = "";
foreach (ListItem objItem in chkTopics.Items)
{
if (objItem.Selected)
{
values += objItem.Value + ":";
}
}
有点难过这个。
答案 0 :(得分:0)
我已根据您的要求创建了一个示例页面。我希望它能为您提供帮助 标记:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SOA.aspx.cs" Inherits="SOA" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div id="checkboxesHolder" runat="server">
</div>
<input type="submit" value="Submit" />
</form>
</body>
</html>
服务器端:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
public partial class SOA : System.Web.UI.Page {
private List<String> GetNames() {
return Enumerable.Range(1, 10).Select(x => string.Format("Checkbox_{0}", x)).ToList();
}
protected void Page_Load(object sender, EventArgs e) {
CreateCheckboxes();
if(IsPostBack)
ReadCheckboxes();
}
private void ReadCheckboxes() {
var selectedName = GetNames().Where(x => Request.Form[x] == "checked");
}
private void CreateCheckboxes() {
foreach(var name in GetNames()) {
var checkbox = new HtmlInputCheckBox();
checkbox.ID = name;
checkbox.Value = "checked";
checkbox.Name = name;
checkboxesHolder.Controls.Add(checkbox);
checkboxesHolder.Controls.Add(new LiteralControl(name));
}
}
}