GridView控件简介
GridView是ASP.NET中的一个控件,它可以用于显示数据,并支持分页、排序、选择等功能,GridView控件的主要属性有:DataKeyNames、DataSource、AutoGenerateColumns、Columns、PageSize等,本文将重点介绍如何使用GridView控件实现删除功能。
实现GridView控件的删除功能
1、在页面上添加一个GridView控件,并设置相关属性。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="ID" HeaderText="编号" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="Name" HeaderText="姓名" SortExpression="Name" /> <asp:BoundField DataField="Age" HeaderText="年龄" SortExpression="Age" /> <asp:TemplateField HeaderText=""> <ItemTemplate> <asp:LinkButton ID="btnDelete" runat="server" Text="删除" CommandName="Delete"></asp:LinkButton> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
2、在后台代码中添加SqlDataSource,并绑定数据源。
using System; using System.Configuration; using System.Data; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { BindData(); } private void BindData() { SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Users", conn); DataTable dt = new DataTable(); adapter.Fill(dt); GridView1.DataSource = dt; GridView1.DataBind(); } }
3、为GridView控件添加删除事件处理程序。
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Delete") { int id = Convert.ToInt32(e.CommandArgument); SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); SqlCommand cmd = new SqlCommand("DELETE FROM Users WHERE ID=@ID", conn); cmd.Parameters.AddWithValue("@ID", id); int rowsAffected = cmd.ExecuteNonQuery(); if (rowsAffected > 0) { BindData(); //重新绑定数据源,刷新页面显示更新后的数据 Response.Write("删除成功!"); } else { Response.Write("删除失败!"); } } }
4、在前端代码中为LinkButton控件添加Click事件处理程序。
<asp:LinkButton ID="btnDelete" runat="server" Text="删除" CommandName="Delete" OnClientClick="return confirm('确定要删除吗?');"></asp:LinkButton>
相关问题与解答
问题1:如何在GridView控件中实现分页功能?
答案1:在GridView控件的属性中设置PageSize和CurrentPageIndex即可实现分页功能,设置每页显示10条记录,当前页显示第2页,需要在后台代码中绑定数据源时,使用LINQ查询语句进行分页查询,示例代码如下:
int pageIndex = Convert.ToInt32(Request.QueryString["page"]) + 1; //获取当前页码,从1开始计数,所以需要加1;如果没有传递page参数,则默认为1。 int pageSize = 10; //每页显示的记录数。 int totalRecordCount = dt.Rows.Count; //总记录数。 int totalPages = (totalRecordCount + pageSize 1) / pageSize; //计算总页数,注意这里要使用Math.Ceiling方法向上取整。 DataTable pagedData = dt.AsEnumerable().Skip((pageIndex 1) * pageSize).Take(pageSize).CopyToDataTable(); //分页查询数据,注意这里使用了AsEnumerable方法将DataTable转换为IEnumerable<DataRow>类型,以便使用LINQ查询语句进行分页,然后使用Skip和Take方法进行分页,最后使用CopyToDataTable方法将分页结果转换回DataTable类型,最后将分页后的数据绑定到GridView1控件的DataSource属性上即可。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/273049.html