简单实现DataGrid添加CheckBox删除记录(转载纳米小心的博客)
2008-09-21 10:23
393 查看
今天项目中需要实现在DataGrid中添加CheckBox以方便删除记录的功能,仔细想了想,以前我的做法有bug,是通过在模板列中添加CheckBox控件,然后循环每个模板列判断该CheckBox是否选中,如果选中则将该CheckBox所在的行索引记下来作为删除的依据。这个方法表面上看删除是没有问题,但是一涉及分页或者是对DataGrid进行了查询后再来删除记录就会有bug,我重新整理了代码,找到了更简单的方法:
首先编辑模板列,然后添加CheckBox控件,另外再添加一个hidden控件,hidden是页面的隐藏域,我用它来保存该行记录的主键,给它的value属性加上服务器代码绑定数据字段
<%# DataBinder.Eval(Container.DataItem, "Code")%>
具体代码如下:
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<INPUT id=SelectedCode type=hidden value='<%# DataBinder.Eval(Container.DataItem, "Code")%>' runat="server">
<asp:CheckBox id="CBoxDelete" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="Id" HeaderText="编号"></asp:BoundColumn>
<asp:BoundColumn DataField="Code" HeaderText="ID"></asp:BoundColumn>
<asp:BoundColumn DataField="Name" HeaderText="名称"></asp:BoundColumn>
</Columns>
DataGrid设置好之后,在页面上添加一个删除按钮,点按钮删除所有单选框被钩上的记录,cs代码如下:
private void BtnDelete_Click(object sender, System.EventArgs e)
{
System.Web.UI.WebControls.CheckBox CBoxDelete;
foreach (DataGridItem DgItem in DgUser.Items)
{
CBoxDelete=(CheckBox)DgItem.FindControl("CBoxDelete");
if(CBoxDelete.Checked)
{
string Code=((HtmlInputHidden)DgItem.FindControl("SelectedCode")).Value;
//有了Code,删除就很容易做到
MyUser.DeleteUser(Code);
}
}
this.BindDgUser();
}
整体效果见图
首先编辑模板列,然后添加CheckBox控件,另外再添加一个hidden控件,hidden是页面的隐藏域,我用它来保存该行记录的主键,给它的value属性加上服务器代码绑定数据字段
<%# DataBinder.Eval(Container.DataItem, "Code")%>
具体代码如下:
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<INPUT id=SelectedCode type=hidden value='<%# DataBinder.Eval(Container.DataItem, "Code")%>' runat="server">
<asp:CheckBox id="CBoxDelete" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="Id" HeaderText="编号"></asp:BoundColumn>
<asp:BoundColumn DataField="Code" HeaderText="ID"></asp:BoundColumn>
<asp:BoundColumn DataField="Name" HeaderText="名称"></asp:BoundColumn>
</Columns>
DataGrid设置好之后,在页面上添加一个删除按钮,点按钮删除所有单选框被钩上的记录,cs代码如下:
private void BtnDelete_Click(object sender, System.EventArgs e)
{
System.Web.UI.WebControls.CheckBox CBoxDelete;
foreach (DataGridItem DgItem in DgUser.Items)
{
CBoxDelete=(CheckBox)DgItem.FindControl("CBoxDelete");
if(CBoxDelete.Checked)
{
string Code=((HtmlInputHidden)DgItem.FindControl("SelectedCode")).Value;
//有了Code,删除就很容易做到
MyUser.DeleteUser(Code);
}
}
this.BindDgUser();
}
整体效果见图
相关文章推荐
- Servlet+Javabean+Html实现简单的查询.删除.修改.添加四个功能
- 简单语句实现用户添加、删除
- 在asp.net中实现删除DataGrid的某条记录时的提示信息
- asp.net实现删除DataGrid的记录时弹出提示信息
- UIday1002:UITableView 2 用UITableView实现通讯录cell简单的数据移动、删除、添加功能
- Android高级控件(一)——ListView绑定CheckBox实现全选,添加和删除等功能
- jQuery简单实现购物车添加删除操作
- Jquery 实现动态添加table tr 和删除tr 以及checkbox的全选 和 获取添加TR删除TR后的数据
- 简单语句实现用户添加、删除
- [Silverlight]简单实现DataGrid使用CheckBox选择行
- Jquery实现select multiple左右添加和删除功能的简单实例
- jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
- 给DataGrid添加CheckBox列、DataGrid列头CheckBox、全选按钮实现服务器端全选
- jquery 删除节点 添加节点 找兄弟节点的简单实现
- 一个实现添加、修改、删除记录的类
- 用Nhibernate怎么实现数据的添加、删除、修改简单程序
- vuejs实现一个博客的简单记录(含源码)
- 基于asp.net + easyui框架,一步步学习easyui-datagrid——实现添加、编辑、删除(三)
- [导入]JavaScript实现DataGrid中添加CheckBox列(全选与否)
- DataGrid中添加删除确认对话框[转载]