All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
C#程序的访问修饰符介绍_[Asp.Net教程]
PHP脚本的8个技巧(3)包含文件_[PHP教程]
SQL,Server不能启动的常见故障_[SQL,Server教程]
匹兹堡跳出来_网络推广_编程技术
ASP.NET2.0数据操作之母板页和站点导航_[Asp.Net教程]
.NET,2.0,SqlDependency快速上手指南_[Asp.Net教程]
PHP实例:PHP如何实现在线发邮件_[PHP教程]
PHP重定向三法_[PHP教程]
SQL2005中的事务与锁定(七)_mssql学习_编程技术
水晶报表基础操作技巧_[Asp.Net教程]
Reading number is top 10 pictures
Players in the eyes of a perfect love1
So beauty, will let you spray blood10
10 powerless things in life
NeedWallpaper9
美女
Other people's teacher VS my teacher
NeedWallpaper6
美女挤公交
NeedWallpaper13
无题
Download software ranking
Rio big adventure
都市狐狸姑娘传
Tram sex maniac 2 (H) rar bag17
中国结婚习俗实录
WebService在.NET中的实战应用教学视频 → 第3集
1400篇各类破解文章
徐若瑄成名作“魔鬼天使”
SP4 for SQL2000
Red cliff
C++编程教程第三版
delv published in(发表于) 2014/1/16 9:34:27 Edit(编辑)
让Asp.NET,DataGrid可排序,选择,分页_[Asp.Net教程]

让Asp.NET,DataGrid可排序,选择,分页_[Asp.Net教程]

让Asp.NET DataGrid可排序,选择,分页_[Asp.Net教程]


DataGrid是Asp.NET中的一个重要的控件,经常我们都将DataGrid做成可分页的和可排序的,有时还需要加上选择功能。这些都是经常需要用到的方法,其实是比较简单的。

  设计思路
  为了方便起见,我们连接SQL Server 2000的NorthWind数据库的Orders表,从数据库里得到此表的数据视图。利用DataGrid的SortCommand事件实现排序。用一个模板列加上CheckBox控件实现选择。可用DataGrid的属性生成器的“分页”选项或者自己修改HTML实现分页。

  HTML
  添加一个DataGrid,命名为dgOrder。
  添加了一个模板列,模板列里放一个名为Cb的CheckBox控件。此列用来实现选择
  为要排序的每个列加上排序表达式SortExpression。
  利用列的DataFormatString来格式化列,象DataFormatString="{0:d}"显示日期格式。
  设置PageSize="15"每页显示15行数据,AllowPaging="True" 为允许分页 。

整个HTML页代码:




Width="718px" AutoGenerateColumns="False" AllowSorting="True"
CellPadding="4" BorderWidth="1px" BorderColor="#A0ABEB"
PageSize="15" BorderStyle="Solid" BackColor="White"
GridLines="Vertical" ForeColor="Black" AllowPaging="True"
ShowFooter="True">





BorderColor="#6876C5" BackColor="#6876C5">

















HeaderText="ID">





HeaderText="ShipCountry">





HeaderText="ShippedDate" DataFormatString="{0:d}">





HeaderText="Freight">





HeaderText="ShipAddress">







Position="TopAndBottom" BackColor="White" Mode="NumericPages">





后台代码:

'得到数据视图,参数为要排序的列
Private Function GetDv(ByVal strSort As String) As DataView
'定义数据库连接
Dim dv As DataView
Dim 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("select * from orders", CN)
Dim ds As New DataSet()
adp.Fill(ds)
'得到数据视图
dv = ds.Tables(0).DefaultView
Catch ex As Exception
#If DEBUG Then
Session("Error") = ex.ToString()
Response.Redirect("../error.aspx") '跳转程序的公共错误处理页面
#End If
Finally
'关闭连接
CN.Close()
End Try
'排序
dv.Sort = strSort
Return dv
End Function

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
If Not IsPostBack Then
ViewState("strSort") = "orderid"
dgOrder.DataSource = GetDv(ViewState("strSort").ToString())
dgOrder.DataBind()
End If
End Sub
'排序
Private Sub dgOrder_SortCommand(ByVal source As Object,
ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles dgOrder.SortCommand
dgOrder.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 As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles dgOrder.PageIndexChanged
'得到分页的页号
dgOrder.CurrentPageIndex = e.NewPageIndex
dgOrder.DataSource = GetDv(ViewState("strSort").ToString())
dgOrder.DataBind()
End Sub



运行结果如下图所示:



  为了知道用户选择的是哪些记录,我们可以利用DataGridItem的FindControl得到CheckBox的值,我们来添加一个按钮,再写如下代码:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim item As DataGridItem
Dim StrScript As String
StrScript = "
alert('"
'循环表格的项,FindControl
For Each item In Me.dgOrder.Items
If CType(item.FindControl("cb"), System.Web.UI.WebControls.CheckBox).Checked Then
Try
StrScript += item.Cells(1).Text & Space(2)
Catch ex As Exception
End Try
End If
Next
StrScript += "被选择!')
"
RegisterClientScriptBlock("系统消息", StrScript)
End Sub



  上面的代码RegisterClientScriptBlock添加Java Script脚本弹出对话框。(其实Vb Script的对话框比Java Script的对话框多更多的显示和控制方式,但Netscape的浏览器不支持,大家可根据相应的项目在程序里选择用哪种脚本)。



  总结
  DataGrid是我们常用的Web 控件,有时我们还可以和DataList混合使用,通过修改HTML页,可以达到好的页面效果。上面只是一个例子,为了便于清楚整个过程,我把数据访问部分(SQL)写到了页面中。在软件开发中,我们一般把访问数据的部分写成数据层,页面调用数据层得到数据,这样逻辑清晰,修改和维护都很方便。
作者:李洪根 出处:CSDN





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.