全部代码如下,请各位前辈看看是怎么回事? Imports System.Data Imports System.Data.SqlClient Public Class search Inherits System.Web.UI.Page#Region " Web 窗体设计器生成的代码 " '该调用是 Web 窗体设计器所必需的。 <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub Protected WithEvents DLSearch As System.Web.UI.WebControls.DataList Protected WithEvents Label1 As System.Web.UI.WebControls.Label Protected WithEvents lbFirst As System.Web.UI.WebControls.LinkButton Protected WithEvents lbPrev As System.Web.UI.WebControls.LinkButton Protected WithEvents lbNext As System.Web.UI.WebControls.LinkButton Protected WithEvents lbLast As System.Web.UI.WebControls.LinkButton Protected WithEvents lPagecount As System.Web.UI.WebControls.Label Protected WithEvents lRowscount As System.Web.UI.WebControls.Label Protected WithEvents lCurrentpage As System.Web.UI.WebControls.Label '注意: 以下占位符声明是 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 Dim daobj As New dataaccessobj '定义主题记录的总数 Dim rowscount As Integer '定义一共显示的页数 Dim pagecount As Integer '定义当前的页号 Dim currentpage As Integer '定义每一页显示多少行 Const rowsperpage As Integer = 1 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '在此处放置初始化页的用户代码 If IsPostBack = False Then '绑定数据 mybinddata() calrowscount() End If '不分页显示 'displayall() '分页显示 displaypart() End Sub Sub mybinddata() '绑定搜索结果 daobj.pconstr = "server=localhost;uid=sa;pwd=password;database=corp" If Request.QueryString("sby") = "" Then Label1.Text += "请填写搜索的依据" Else If Request.QueryString("sby") = "按产品名称搜索" Then daobj.psqlstr = "select * from viewcorpprs where pname like '%" & Request.QueryString("skey") & "%'" End If If Request.QueryString("sby") = "按厂商搜索" Then daobj.psqlstr = "select * from viewcorpprs where sname like '%" & Request.QueryString("skey") & "%'" End If End If End Sub Sub displayall() '不分页显示 '指定数据源 DLSearched.DataSource = daobj.displaydata() '绑定数据源 DLSearched.DataBind() End Sub Sub displaypart() '分页显示 '绑定当前页的记录 If currentpage <> 0 Then bindcurrentpage(currentpage, rowsperpage) If currentpage = 1 Then lbFirst.Enabled = False lbPrev.Enabled = False Else lbFirst.Enabled = True lbPrev.Enabled = True End If If currentpage = pagecount Then lbNext.Enabled = False lbLast.Enabled = False Else lbNext.Enabled = True lbLast.Enabled = True End If Else lbFirst.Enabled = False lbPrev.Enabled = False lbNext.Enabled = False lbLast.Enabled = False End If End Sub Sub calrowscount() '首先计算记录总的行数 rowscount = daobj.displaydata().Count '然后计算要显示的总的页数 If rowscount = 0 Then currentpage = 0 Label1.Text = "无记录" Else currentpage = 1 Label1.Text = "有记录" If rowscount Mod rowsperpage > 0 Then pagecount = rowscount \ rowsperpage + 1 Else pagecount = rowscount \ rowsperpage End If End If '显示出总的页数 lPagecount.Enabled = True lCurrentpage.Enabled = True lPagecount.Text = "共" & pagecount.ToString() & "页" lRowscount.Text = "共" & rowscount.ToString() & "条记录" lCurrentpage.Text = "第" & currentpage.ToString() & "页" End Sub Sub bindcurrentpage(ByVal currentpageno As Integer, ByVal rowscountperpage As Integer) daobj.pcurrentpageno = currentpageno daobj.prowscountperpage = rowscountperpage '指定数据源 DLSearched.DataSource = daobj.displaypartdata '绑定数据源 DLSearched.DataBind() End Sub Sub goto_click(ByVal sender As Object, ByVal e As CommandEventArgs) Dim pagecountnum, currentpageno As Integer pagecountnum = Convert.ToInt32(getno("pagecount")) currentpageno = Convert.ToInt32(getno("currentpage")) Dim commandtxt As String commandtxt = e.CommandName Select Case commandtxt Case "First" currentpage = 1 Case "Next" currentpage = Math.Min(pagecountnum, currentpageno + 1) Case "Prev" currentpage = Math.Max(1, currentpageno - 1) Case "Last" currentpage = pagecountnum End Select If currentpage = 1 Then lbFirst.Enabled = False lbPrev.Enabled = False Else lbFirst.Enabled = True lbPrev.Enabled = True End If If currentpage = pagecountnum Then lbNext.Enabled = False lbLast.Enabled = False Else lbNext.Enabled = True lbLast.Enabled = True End If '读取新页中的记录 mybinddata() bindcurrentpage(currentpage, rowsperpage) '记录并显示新页号 lCurrentpage.Text = "第" & currentpage.ToString() & "页" End Sub Function getno(ByVal labelname As String) As String Dim str As String Dim no As Integer If labelname = "pagecount" Then str = lPagecount.Text str = str.Trim("共", "页") End If If labelname = "currentpage" Then str = lCurrentpage.Text str = str.Trim("第", "页") End If If labelname = "rowscount" Then str = lRowscount.Text str = str.Trim("共", "条", "记", "录") End If Return str End FunctionEnd Class
Imports System.Data
Imports System.Data.SqlClient
Public Class search
Inherits System.Web.UI.Page#Region " Web 窗体设计器生成的代码 " '该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub
Protected WithEvents DLSearch As System.Web.UI.WebControls.DataList
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents lbFirst As System.Web.UI.WebControls.LinkButton
Protected WithEvents lbPrev As System.Web.UI.WebControls.LinkButton
Protected WithEvents lbNext As System.Web.UI.WebControls.LinkButton
Protected WithEvents lbLast As System.Web.UI.WebControls.LinkButton
Protected WithEvents lPagecount As System.Web.UI.WebControls.Label
Protected WithEvents lRowscount As System.Web.UI.WebControls.Label
Protected WithEvents lCurrentpage As System.Web.UI.WebControls.Label '注意: 以下占位符声明是 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
Dim daobj As New dataaccessobj
'定义主题记录的总数
Dim rowscount As Integer
'定义一共显示的页数
Dim pagecount As Integer
'定义当前的页号
Dim currentpage As Integer
'定义每一页显示多少行
Const rowsperpage As Integer = 1
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If IsPostBack = False Then
'绑定数据
mybinddata()
calrowscount()
End If
'不分页显示
'displayall()
'分页显示
displaypart()
End Sub Sub mybinddata()
'绑定搜索结果
daobj.pconstr = "server=localhost;uid=sa;pwd=password;database=corp"
If Request.QueryString("sby") = "" Then
Label1.Text += "请填写搜索的依据"
Else
If Request.QueryString("sby") = "按产品名称搜索" Then
daobj.psqlstr = "select * from viewcorpprs where pname like '%" & Request.QueryString("skey") & "%'"
End If
If Request.QueryString("sby") = "按厂商搜索" Then
daobj.psqlstr = "select * from viewcorpprs where sname like '%" & Request.QueryString("skey") & "%'"
End If
End If
End Sub Sub displayall()
'不分页显示
'指定数据源
DLSearched.DataSource = daobj.displaydata()
'绑定数据源
DLSearched.DataBind()
End Sub Sub displaypart()
'分页显示
'绑定当前页的记录
If currentpage <> 0 Then
bindcurrentpage(currentpage, rowsperpage)
If currentpage = 1 Then
lbFirst.Enabled = False
lbPrev.Enabled = False
Else
lbFirst.Enabled = True
lbPrev.Enabled = True
End If
If currentpage = pagecount Then
lbNext.Enabled = False
lbLast.Enabled = False
Else
lbNext.Enabled = True
lbLast.Enabled = True
End If
Else
lbFirst.Enabled = False
lbPrev.Enabled = False
lbNext.Enabled = False
lbLast.Enabled = False
End If
End Sub Sub calrowscount()
'首先计算记录总的行数
rowscount = daobj.displaydata().Count
'然后计算要显示的总的页数
If rowscount = 0 Then
currentpage = 0
Label1.Text = "无记录"
Else
currentpage = 1
Label1.Text = "有记录"
If rowscount Mod rowsperpage > 0 Then
pagecount = rowscount \ rowsperpage + 1
Else
pagecount = rowscount \ rowsperpage
End If
End If
'显示出总的页数
lPagecount.Enabled = True
lCurrentpage.Enabled = True lPagecount.Text = "共" & pagecount.ToString() & "页"
lRowscount.Text = "共" & rowscount.ToString() & "条记录"
lCurrentpage.Text = "第" & currentpage.ToString() & "页"
End Sub Sub bindcurrentpage(ByVal currentpageno As Integer, ByVal rowscountperpage As Integer)
daobj.pcurrentpageno = currentpageno
daobj.prowscountperpage = rowscountperpage
'指定数据源
DLSearched.DataSource = daobj.displaypartdata
'绑定数据源
DLSearched.DataBind()
End Sub Sub goto_click(ByVal sender As Object, ByVal e As CommandEventArgs)
Dim pagecountnum, currentpageno As Integer
pagecountnum = Convert.ToInt32(getno("pagecount"))
currentpageno = Convert.ToInt32(getno("currentpage")) Dim commandtxt As String
commandtxt = e.CommandName
Select Case commandtxt
Case "First"
currentpage = 1
Case "Next"
currentpage = Math.Min(pagecountnum, currentpageno + 1)
Case "Prev"
currentpage = Math.Max(1, currentpageno - 1)
Case "Last"
currentpage = pagecountnum
End Select
If currentpage = 1 Then
lbFirst.Enabled = False
lbPrev.Enabled = False
Else
lbFirst.Enabled = True
lbPrev.Enabled = True
End If
If currentpage = pagecountnum Then
lbNext.Enabled = False
lbLast.Enabled = False
Else
lbNext.Enabled = True
lbLast.Enabled = True
End If
'读取新页中的记录
mybinddata()
bindcurrentpage(currentpage, rowsperpage)
'记录并显示新页号
lCurrentpage.Text = "第" & currentpage.ToString() & "页"
End Sub Function getno(ByVal labelname As String) As String
Dim str As String
Dim no As Integer
If labelname = "pagecount" Then
str = lPagecount.Text
str = str.Trim("共", "页")
End If
If labelname = "currentpage" Then
str = lCurrentpage.Text
str = str.Trim("第", "页")
End If
If labelname = "rowscount" Then
str = lRowscount.Text
str = str.Trim("共", "条", "记", "录")
End If
Return str
End FunctionEnd Class