日期:2014-05-18  浏览次数:20414 次

如何动态生成checkbox并修改id跟取值?(在页面上用循环生成)
就像邮箱里邮件记录删除那样
例如下面代码

<% for(int i =0;i <10;i++){ %> 
  <tr> 
  <td> 
  <asp:CheckBox ID="CheckBox1" runat="server" /> </td> 
  <td>
  </tr> 
<%} %>

------解决方案--------------------
我用的GridView,table页面没做过测试
把GridView供楼主参考:

前台:
<asp:GridView ID="gvList" runat="server" OnRowDataBound="gvList_RowDataBound">
 <Columns>
<asp:TemplateField>
<ItemTemplate>
<input name="cbOrder" type="checkbox" value='<%# DataBinder.Eval(Container.DataItem,"ID") %>' />
</ItemTemplate>
<ItemStyle Width="4%" HorizontalAlign="Center" />
<HeaderTemplate>
<input id="cbOrderAll" type="checkbox" onclick="selectAll()" value="all" />
</HeaderTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="序号">
<ItemTemplate>
<asp:Literal ID="lOrder" runat="server"></asp:Literal>
</ItemTemplate>
<ItemStyle Width="4%" />
</asp:TemplateField> 
 </Columns>
</asp:GridView>

<script language="javascript">
//点击全选checkbox时,该列的checkbox全为选中状态
function selectAll()
{
var all = document.getElementById("cbOrderAll");
var str=document.getElementsByName("cbOrder");

if(all.checked)
{
for(var i=0; i<str.length; i++) str[i].checked = true;
}
else
{
for(var i=0; i<str.length; i++) str[i].checked = false;
}

}

//查看按钮的客户端事件
function ClientView()
{
var index=0;
var str=document.getElementsByName("cbOrder");

for(var i=0; i<str.length; i++)
{
if(str[i].checked)index++;
}
if(index==0)
{
alert("请选择员工记录!");
return false;
}
else if(index>1)
{
alert("只能选择一条员工记录!");
return false;
}
return true;
}
</script>

后台:

string RecordID = Request.Form["cbOrder"].ToString(); //获得所选记录ID,多个选择时,多个ID用","号分隔

protected void gvList_RowDataBound(object sender, GridViewRowEventArgs e)
{
//第一列显示序号
int i = 1;
Literal lOrder;
foreach (GridViewRow gvr in gvList.Rows)
{
lOrder = (Literal)gvr.FindControl("lOrder");
lOrder.Text = Convert.ToString(gvList.PageIndex * gvList.PageSize + i);
i++;
}

/*
//选定行变色
if (e.Row.RowType == DataControlRowType.DataRow)
{
string BglJ = "#EEEEEE"; //奇数行
string BglO = "Gainsboro"; //偶数行
e.Row.Attributes.Add("onmous