beta中已经没有checkboxlist,不知怎样利用checkbox做一个批量删除,怎样通过foreach来遍历选中的项,然后传到controller中进行删除呢。谢谢
不用这样,
CheckBox()的name你设为相同的如 x
后台
public ActionResult Action(string[] x){}
这样用数组就取到了
其实实现很简单:详细代码如下
前台主要代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"
ForeColor="#333333" GridLines="None" Width="667px">
<FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="cbAll" runat="server" AutoPostBack="True" OnCheckedChanged="cbAll_CheckedChanged" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="cbSelect" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="userID" HeaderText="用户编号" />
</Columns>
<RowStyle BackColor="#E3EAEB" />
<EditRowStyle BackColor="#7C6F57" />
<SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
<br />
</div>
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Delete" />
后台主要代码:
实现全选的代码
//全选
protected void cbAll_CheckedChanged(object sender, EventArgs e)
{
for (int i=0; i < GridView1.Rows.Count;i++ )
{
if(((CheckBox)sender).Checked==true)
{
((CheckBox)GridView1.Rows[i].Cells[0].FindControl("cbSelect")).Checked = true;
}
else
{
((CheckBox)GridView1.Rows[i].Cells[0].FindControl("cbSelect")).Checked = false;
}
}
选中checkbox删除的方法
//删除
protected void Button2_Click(object sender, EventArgs e)
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
if (((CheckBox)GridView1.Rows[i].Cells[0].FindControl("cbSelect")).Checked = true)
{
int id =Convert.ToInt32(GridView1.Rows[i].Cells[1].Text.ToString());
DelData(id);//调用删除数据的数据处理方法
}
}
BindData();//重新绑定数据的方法
}
这个删除应该和在asp下的实现类似,我们不用asp.net的控件,可以像asp一样将数据使用for循环输出到一个table中,table中的第一列是一个<input type='checkbox' name='xxx' value=10 />这种东西,value对应要删除数据的id,当点击提交时会执行一段js脚本,主要是判断xxx的选择情况,如果选择了那么就向
xxxxx/xxxx/xxxx?action=remove&id=10-11-12提交,这个请求会被asp.net mvc的一个action处理id标识要删除的数据的id序列。不知道说明白没有