让Asp.NET的DataGrid可排序、可选择、可分页.doc

上传人:仙人指路1688 文档编号:2385494 上传时间:2023-02-17 格式:DOC 页数:6 大小:22KB
返回 下载 相关 举报
让Asp.NET的DataGrid可排序、可选择、可分页.doc_第1页
第1页 / 共6页
让Asp.NET的DataGrid可排序、可选择、可分页.doc_第2页
第2页 / 共6页
让Asp.NET的DataGrid可排序、可选择、可分页.doc_第3页
第3页 / 共6页
让Asp.NET的DataGrid可排序、可选择、可分页.doc_第4页
第4页 / 共6页
让Asp.NET的DataGrid可排序、可选择、可分页.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《让Asp.NET的DataGrid可排序、可选择、可分页.doc》由会员分享,可在线阅读,更多相关《让Asp.NET的DataGrid可排序、可选择、可分页.doc(6页珍藏版)》请在三一办公上搜索。

1、让Asp.NET的DataGrid可排序、可选择、可分页 网人帝国 添加时间:2003-11-25 12:54:45 人气:71 DataGrid是Asp.NET中的一个重要的控件,经常我们都将DataGrid做成可分页的和可排序的,有时还需要加上选择功能。这些都是经常需要用到的方法,其实是比较简单的。设计思路:为了方便起见,我们连接SQL Server 2000的NorthWind数据库的Orders表,从数据库里得到此表的数据视图。利用DataGrid的SortCommand事件实现排序。用一个模板列加上CheckBox控件实现选择。可用DataGrid的属性生成器的“分页”选项或者自己修

2、改HTML实现分页。HTML:添加一个DataGrid,命名为dgOrder。添加了一个模板列,模板列里放一个名为Cb的CheckBox控件。此列用来实现选择为要排序的每个列加上排序表达式SortExpression。利用列的DataFormatString来格式化列,象DataFormatString=0:d显示日期格式。设置PageSize=15每页显示15行数据,AllowPaging=True 为允许分页 。整个HTML页代码:后台类添加以下代码:Imports System.Data.SqlClient得到数据视图,参数为要排序的列Private Function GetDv(ByV

3、al strSort As String) As DataView定义数据库连接Dim dv As DataViewDim CN As New SqlConnection()Try初始化连接字符串CN.ConnectionString = data source=pmserver;initial catalog=Northwind;persist security info=False;user id=sa;Password=sa;CN.Open()从NorthWind得到orders表的数据Dim adp As SqlDataAdapter = New SqlDataAdapter(sele

4、ct * from orders, CN)Dim ds As New DataSet()adp.Fill(ds)得到数据视图dv = ds.Tables(0).DefaultViewCatch ex As Exception#If DEBUG ThenSession(Error) = ex.ToString()Response.Redirect(./error.aspx) 跳转程序的公共错误处理页面#End IfFinally关闭连接CN.Close()End Try排序dv.Sort = strSortReturn dvEnd FunctionPrivate Sub Page_Load(By

5、Val sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadIf Not IsPostBack ThenViewState(strSort) = orderiddgOrder.DataSource = GetDv(ViewState(strSort).ToString()dgOrder.DataBind()End IfEnd Sub排序Private Sub dgOrder_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.Web

6、Controls.DataGridSortCommandEventArgs) Handles dgOrder.SortCommanddgOrder.CurrentPageIndex = 0得到排序的列ViewState(strSort) = e.SortExpression.ToString()dgOrder.DataSource = GetDv(ViewState(strSort).ToString()dgOrder.DataBind()End Sub分页Private Sub dgOrder_PageIndexChanged(ByVal source As Object, ByVal e

7、As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles dgOrder.PageIndexChanged得到分页的页号dgOrder.CurrentPageIndex = e.NewPageIndexdgOrder.DataSource = GetDv(ViewState(strSort).ToString()dgOrder.DataBind()End Sub 运行结果如下图所示:(点击列标头可以排序)为了知道用户选择的是哪些记录,我们可以利用DataGridItem的FindControl得到CheckBox的值,

8、我们来添加一个按钮,再写如下代码:Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickDim item As DataGridItemDim StrScript As StringStrScript = alert(循环表格的项,FindControlFor Each item In Me.dgOrder.ItemsIf CType(item.FindControl(cb), System.Web.UI.WebControls.Che

9、ckBox).Checked ThenTryStrScript += item.Cells(1).Text & Space(2)Catch ex As ExceptionEnd TryEnd IfNextStrScript += 被选择!)RegisterClientScriptBlock(系统消息, StrScript)End Sub 上面的代码RegisterClientScriptBlock添加Java Script脚本弹出对话框。(其实Vb Script的对话框比Java Script的对话框多更多的显示和控制方式,但Netscape的浏览器不支持,大家可根据相应的项目在程序里选择用哪种脚本)。总结:DataGrid是我们常用的Web 控件,有时我们还可以和DataList混合使用,通过修改HTML页,可以达到好的页面效果。上面只是一个例子,为了便于清楚整个过程,我把数据访问部分(SQL)写到了页面中。在软件开发中,我们一般把访问数据的部分写成数据层,页面调用数据层得到数据,这样逻辑清晰,修改和维护都很方便。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号