以较少代码实现DataGrid的排序,翻页,删除等功能
通过ASP.Net2.0中的母版、主题以及面向对象中的继承、多态等技术可以节省很大的代码量。
以下是我实现的DataGrid的排序,翻页,删除等功能。
首先看一下运行后的效果图:

在这个页面中,实现了排序,分页,删除,编辑等功能,用户选择记录,点击“删除”按钮后,可删除记录。用户点击添加,编辑,删除,查看,查询等按钮,会调用相应的脚本,这里就不再描述脚本代码了。
下面是实现代码:
页面代码:
后台代码:
btnDel_Click()的代码我省略了,它的作用是删除DataGrid中一条选中的记录。
以上就是实现这些功能的代码,是不是代码很少?
为什么只用这么少的代码就可以实现这些功能呢?
下一篇将介绍:
以较少代码实现DataGrid的排序,翻页,删除等功能(续)
以下是我实现的DataGrid的排序,翻页,删除等功能。
首先看一下运行后的效果图:
在这个页面中,实现了排序,分页,删除,编辑等功能,用户选择记录,点击“删除”按钮后,可删除记录。用户点击添加,编辑,删除,查看,查询等按钮,会调用相应的脚本,这里就不再描述脚本代码了。
下面是实现代码:
页面代码:
<%@ Page Language="C#" CodeFile="Student_List.aspx.cs" Inherits="Tables_Student_List"
MasterPageFile="~/Master/ListMaster.master" Title="学生--列表" styleSheetTheme="Default"%>
<asp:Content ID="Main" ContentPlaceHolderID="DefaultContent" runat="server">
<script>
// 操作表名称
// 作者:天志
// 创建日期:2007-11-26
function GetTableName()
{
return "Student";
}
// 参数字符串
// 作者:天志
// 创建日期:2007-11-26
function GetQuery()
{
var Table = document.all("<%=dgdList.ClientID %>");
var StudentGUID = getCheckKeyId(Table, 0, 1);
return "StudentGUID=" + StudentGUID;
}
</script>
<div align="Center">
<asp:DataGrid ID="dgdList" SkinID="dgdList" runat="server">
<Columns>
<asp:TemplateColumn>
<HeaderTemplate>
<input id="chkselectall" type="checkbox" onclick="checkallorno(this)" style="display: none">
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox id="chkID" onclick="ClickCheckInDataGrid(this)" runat="server" />
<input type="hidden" id="idStudentGUID" value='<%# DataBinder.Eval(Container.DataItem, "StudentGUID", "")%>' NAME="idStudentGUID">
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="StudentGUID" Visible="False" />
<asp:BoundColumn DataField="StudentName" HeaderText="学生名称" SortExpression="StudentName" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left"/>
<asp:BoundColumn DataField="ClassGUID" HeaderText="学生班级" SortExpression="ClassGUID" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left"/>
</Columns>
</asp:DataGrid>
</div>
</asp:Content>
MasterPageFile="~/Master/ListMaster.master" Title="学生--列表" styleSheetTheme="Default"%>
<asp:Content ID="Main" ContentPlaceHolderID="DefaultContent" runat="server">
<script>
// 操作表名称
// 作者:天志
// 创建日期:2007-11-26
function GetTableName()
{
return "Student";
}
// 参数字符串
// 作者:天志
// 创建日期:2007-11-26
function GetQuery()
{
var Table = document.all("<%=dgdList.ClientID %>");
var StudentGUID = getCheckKeyId(Table, 0, 1);
return "StudentGUID=" + StudentGUID;
}
</script>
<div align="Center">
<asp:DataGrid ID="dgdList" SkinID="dgdList" runat="server">
<Columns>
<asp:TemplateColumn>
<HeaderTemplate>
<input id="chkselectall" type="checkbox" onclick="checkallorno(this)" style="display: none">
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox id="chkID" onclick="ClickCheckInDataGrid(this)" runat="server" />
<input type="hidden" id="idStudentGUID" value='<%# DataBinder.Eval(Container.DataItem, "StudentGUID", "")%>' NAME="idStudentGUID">
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="StudentGUID" Visible="False" />
<asp:BoundColumn DataField="StudentName" HeaderText="学生名称" SortExpression="StudentName" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left"/>
<asp:BoundColumn DataField="ClassGUID" HeaderText="学生班级" SortExpression="ClassGUID" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left"/>
</Columns>
</asp:DataGrid>
</div>
</asp:Content>
后台代码:
/**//// <copyright>天志 1980--2007</copyright>
/// <version>1.0</version>
/// <author>天志</author>
/// <email>Xumingxsh21@126.com</email>
/// <log date="2007-11-26">创建</log>
using System;
using System.Data;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
/**//// <summary>
/// 学生--列表记录。
/// </summary>
/// <author>天志</author>
/// <log date="2007-11-26">创建</log>
public partial class Tables_Student_List : BaseListPage
{
/**//// <summary>
/// 装载页面数据。
/// </summary>
/// <param name="sender">页面对象</param>
/// <param name="e">存储事件数据对象</param>
/// <author>天志</author>
/// <log date="2007-11-26">创建</log>
private void Page_Load(object sender, System.EventArgs e)
{
try
{
((Master_ListMaster)this.Master).OnDeleteEvent += new Master_ListMaster.DeleteHandler(btnDel_Click);
if (!IsPostBack)
{
// 绑定DataGrid数据源
this.dgCommon.BindDataGrid(this.dgdList, true);
}
}
catch(Exception ex)
{
this.OnException(ex);
}
}
/**//// <summary>
/// 取得数据源。
/// </summary>
/// <author>天志</author>
/// <log date="2007-11-26">创建</log>
protected override DataView GetDataView()
{
string sql = "SELECT StudentGUID, StudentName, ClassGUID FROM Student";

return dataTable.DefaultView;
}
/**//// <summary>
/// 设置事件的DataGrid。
/// </summary>
/// <author>天志</author>
/// <log date="2007-11-26">创建</log>
protected override DataGrid InitialDataGridControl
{
get
{
return this.dgdList;
}
}
/**//// <summary>
/// 删除。
/// </summary>
/// <author>天志</author>
/// <log date="2007-11-26">创建</log>
protected void btnDel_Click()
{

this.dgCommon.BindDataGrid(this.dgdList, true);
}
}
GetDataView()的代码我省略了,它的作用是取得DataGrid的数据源。/// <version>1.0</version>
/// <author>天志</author>
/// <email>Xumingxsh21@126.com</email>
/// <log date="2007-11-26">创建</log>
using System;
using System.Data;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
/**//// <summary>
/// 学生--列表记录。
/// </summary>
/// <author>天志</author>
/// <log date="2007-11-26">创建</log>
public partial class Tables_Student_List : BaseListPage
{
/**//// <summary>
/// 装载页面数据。
/// </summary>
/// <param name="sender">页面对象</param>
/// <param name="e">存储事件数据对象</param>
/// <author>天志</author>
/// <log date="2007-11-26">创建</log>
private void Page_Load(object sender, System.EventArgs e)
{
try
{
((Master_ListMaster)this.Master).OnDeleteEvent += new Master_ListMaster.DeleteHandler(btnDel_Click);
if (!IsPostBack)
{
// 绑定DataGrid数据源
this.dgCommon.BindDataGrid(this.dgdList, true);
}
}
catch(Exception ex)
{
this.OnException(ex);
}
}
/**//// <summary>
/// 取得数据源。
/// </summary>
/// <author>天志</author>
/// <log date="2007-11-26">创建</log>
protected override DataView GetDataView()
{
string sql = "SELECT StudentGUID, StudentName, ClassGUID FROM Student";

return dataTable.DefaultView;
}
/**//// <summary>
/// 设置事件的DataGrid。
/// </summary>
/// <author>天志</author>
/// <log date="2007-11-26">创建</log>
protected override DataGrid InitialDataGridControl
{
get
{
return this.dgdList;
}
}
/**//// <summary>
/// 删除。
/// </summary>
/// <author>天志</author>
/// <log date="2007-11-26">创建</log>
protected void btnDel_Click()
{

this.dgCommon.BindDataGrid(this.dgdList, true);
}
}
btnDel_Click()的代码我省略了,它的作用是删除DataGrid中一条选中的记录。
以上就是实现这些功能的代码,是不是代码很少?
为什么只用这么少的代码就可以实现这些功能呢?
下一篇将介绍:
以较少代码实现DataGrid的排序,翻页,删除等功能(续)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)