还是查询的问题

gltgl 2003-10-09 06:23:11
根据条件查询,我把查询输入条件和查询结果放在了一个页面上。可以有查询结果了,但是现在有个新问题:
在得到查询结果以后,如果我进行了翻页,然后在输入新条件,会有以下提示:
无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。
我该在什么地方设置,让CurrentPageIndex值在点击按钮的时候自动设置成1呢?
源代码:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
SetVirtualItemCount()
End If
End Sub

Private Sub LinkButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton1.Click
Response.Redirect("htmlpage1.htm")
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


Dim strSQL As String
Dim Strbt = Trim(txtBT.Text)
Dim Strnr = Trim(txtNR.Text)

If Strnr = "" And Strbt = "" Then
strSQL = "select * from files order by id desc"
ElseIf Strbt = "" Then
strSQL = "select * from files where texts like '%" & Strnr & "%' order by id desc"
ElseIf Strnr = "" Then
strSQL = "select * from files where topic like '%" & Strbt & "%' order by id desc"
Else
strSQL = " select * from files where topic like '%" & Strbt & "%' and texts like '%" & Strnr & "%' order by id desc"
End If
Label5.Text = strSQL

SetVirtualItemCount()
DataFiller()

End Sub

Sub DataFiller()
'只要翻页,重新输入查询条件就会出错!
Dim StrConn As String = ConfigurationSettings.AppSettings("DataConn")
Dim objConn As New SqlConnection(StrConn)
objConn.Open()

Dim strSQL As String = Label5.Text

Dim objAdapter As New SqlDataAdapter(strSQL, objConn)

Dim objDataSet As New DataSet()
objAdapter.Fill(objDataSet, "topic")

MyGrid.DataSource = objDataSet.Tables.Item("topic")
MyGrid.DataBind()
End Sub

Sub GridPageChange(ByVal S As Object, ByVal E As DataGridPageChangedEventArgs)
MyGrid.CurrentPageIndex = E.NewPageIndex
DataFiller()
End Sub

Sub SetVirtualItemCount()
' Set up the connection
Dim strConn As String = ConfigurationSettings.AppSettings("DataConn")
Dim conn As New SqlConnection(strConn)

' Set up the command
Dim strCmd As String = "SELECT COUNT(*) FROM files"
Dim cmd As SqlCommand = New SqlCommand(strCmd, conn)

' Execute the command
conn.Open()
Dim nItemCount As Int32 = cmd.ExecuteScalar()
conn.Close()

MyGrid.VirtualItemCount = nItemCount
End Sub
...全文
31 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
gltgl 2003-10-10
  • 打赏
  • 举报
回复
我添加了一句:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


Dim strSQL As String
Dim Strbt = Trim(txtBT.Text)
Dim Strnr = Trim(txtNR.Text)

If Strnr = "" And Strbt = "" Then
strSQL = "select * from files order by id desc"
ElseIf Strbt = "" Then
strSQL = "select * from files where texts like '%" & Strnr & "%' order by id desc"
ElseIf Strnr = "" Then
strSQL = "select * from files where topic like '%" & Strbt & "%' order by id desc"
Else
strSQL = " select * from files where topic like '%" & Strbt & "%' and texts like '%" & Strnr & "%' order by id desc"
End If
Label5.Text = strSQL

mygrid.CurrentPageIndex=1
SetVirtualItemCount()
DataFiller()

End Sub
树猫 2003-10-09
  • 打赏
  • 举报
回复
设置 DataGrid的当前页索引 之前,先判断欲设置的索引是小于 DataGrid当前总页数-1,若是 将其设为1

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧