首页 新闻 搜索 专区 学院

asp.net mvc beta 中checkbox 删除问题???

0
悬赏园豆:10 [已解决问题] 解决于 2008-12-18 11:20

beta中已经没有checkboxlist,不知怎样利用checkbox做一个批量删除,怎样通过foreach来遍历选中的项,然后传到controller中进行删除呢。谢谢

问题补充: <input type='checkbox' name='xxx' value="<%=item.id%>" /> 这样是获取到选中的id吧, 删 除按钮 《%=html.actionlink("del",“action”,new{checkbox=html.checkbox("checkname")})%》 在这里是获得cehckbox并传给action不知对不对, 还有我的删 除按钮如何得到这个参数,并传过去 public ActionResult DEL(string [] checkname) { for(int i=0 ;i<=checkbox.length;i++) { app model = db.app.firstordefault(e=>e.appid==check[i]); 删除 } }
mysun的主页 mysun | 初学一级 | 园豆:14
提问于:2008-12-16 18:14
< >
分享
最佳答案
0

不用这样,

CheckBox()的name你设为相同的如 x

后台

public  ActionResult  Action(string[] x){}

这样用数组就取到了

重典 | 老鸟四级 |园豆:2442 | 2008-12-17 08:59
其他回答(2)
1

其实实现很简单:详细代码如下

前台主要代码:

 <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 />
        &nbsp;</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();//重新绑定数据的方法
    }

sl2008 | 园豆:407 (菜鸟二级) | 2008-12-16 19:04
0

这个删除应该和在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序列。不知道说明白没有

GUO Xingwang | 园豆:3885 (老鸟四级) | 2008-12-16 20:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册