以下是我实现的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的排序,翻页,删除等功能(续)