关于datagrid排序和分页的问题
我这里做了个DATAGRID的东西,现在排序和过滤完了后,在翻页就不能用了,下面是代码,帮忙给看看,谢谢
Imports System.Data.Common
Imports ADODB
Imports System.Data.oledb
Public Class webtest
Inherits System.Web.UI.Page
Private dtview As DataView = New DataView
#Region " Web 窗体设计器生成的代码 "
'该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
Protected WithEvents Button1 As System.Web.UI.WebControls.Button
'注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If (Not IsPostBack) Then
getdataset()
End If
End Sub
Private Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles DataGrid1.SortCommand
Dim dt As DataTable = getdataset().Tables("zlfw")
dtview = New DataView(dt)
'Dim dv As DataView = New DataView(getdataset().Tables("zlfw"))
'dv.Sort = e.SortExpression.ToString()
'DataGrid1.DataSource = dv
dtview.Sort = e.SortExpression.ToString()
DataGrid1.DataSource = dtview
DataGrid1.DataBind()
End Sub
Private Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand
getdataset()
DataGrid1.EditItemIndex = e.Item.ItemIndex
DataGrid1.DataBind()
End Sub
Private Sub DataGrid1_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.CancelCommand
getdataset()
DataGrid1.EditItemIndex = -1
Page.DataBind()
End Sub
'=====================表和记录集同步函数,返回dataset=======================
Private Function getdataset() As DataSet
Dim conn As conndbstring = New conndbstring
Dim myconn As OleDb.OleDbConnection = New OleDb.OleDbConnection
myconn.ConnectionString = conn.setconndbstr
Dim selectCMD As OleDb.OleDbCommand = New OleDb.OleDbCommand("select id as 编号,sfzh as 身份证号, xm as 姓名,xb as 性别,fwcs as 服务处所,zz as 住址,czfwdz as 出租房屋地址,lxdh as 联系电话 ,fjs as 房间数,jwq as 警务区 from zdfw", myconn)
Dim custDA As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter
Dim custDS As DataSet = New DataSet
custDA.SelectCommand = selectCMD
custDA.Fill(custDS, "zlfw")
Try
myconn.Open()
DataGrid1.DataSource = custDS.Tables("zlfw")
Page.DataBind()
Catch ex As Exception
Response.Write("连接数据库或SQL语句有问题!")
End Try
If dtview.ToString Is "" Then
Response.Write("df")
End If
Response.Write(dtview.Sort.ToString)
myconn.Close()
Return custDS
End Function
'=========================删除选定的数据行,函数参数id是表的id字段==============================
Private Function deleterow(ByVal delsql As String) As Integer
Dim conn As conndbstring = New conndbstring
Dim myconn As OleDb.OleDbConnection = New OleDb.OleDbConnection
myconn.ConnectionString = conn.setconndbstr
Dim deletecmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(delsql, myconn)
Try
myconn.Open()
deletecmd.ExecuteNonQuery()
myconn.Close()
Return 0
Catch ex As Exception
Response.Write("连接数据库或SQL语句有问题!")
Return -1
End Try
End Function
'=============================删除更新数据传入参数为sql语句===================================
Private Function updaterow(ByVal sql As String) As Integer
Dim conn As conndbstring = New conndbstring
Dim myconn As OleDb.OleDbConnection = New OleDb.OleDbConnection
myconn.ConnectionString = conn.setconndbstr
Dim deletecmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(sql, myconn)
Try
myconn.Open()
deletecmd.ExecuteNonQuery()
myconn.Close()
Return 0
Catch ex As Exception
Response.Write("连接数据库或SQL语句有问题!")
Return -1
End Try
End Function