90分求这段代码的正确分页,现在还有点BUG,如何改,请详细一点

subitt 2004-12-26 01:51:38
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If Not Me.IsPostBack Then
orderbind()
End If
End Sub

Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
orderbind()
End Sub
Sub orderbind()
Me.Label3.Text = Me.DropDownList1.SelectedItem.Text

Dim conn As New OleDbConnection("Data Source=""" & Me.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings("database")) & """;Provider=""Microsoft.Jet.OLEDB.4.0"";User ID=Admin")
Dim i As Integer = CInt(Me.DropDownList1.SelectedValue)
Dim mycom As String
If Me.DropDownList1.SelectedValue = 0 Or Me.DropDownList1.SelectedValue = 1 Then
'i = 3
mycom = "SELECT DISTINCT T_BookOrder.OrderID, T_BookOrder.Zonger, T_PaymentWay.PaymentWay, T_DeliveryWay.Way, T_BookOrder.OrderState, T_BookOrder.OrderTime, T_BookOrder.UserName FROM ((T_BookOrder INNER JOIN T_PaymentWay ON T_BookOrder.PaymentWayID = T_PaymentWay.PaymentWayID) INNER JOIN T_DeliveryWay ON T_BookOrder.WayID = T_DeliveryWay.WayID) WHERE (T_BookOrder.UserName = '16120300') ORDER BY T_BookOrder.OrderTime DESC"
Else
mycom = "SELECT DISTINCT T_BookOrder.OrderID, T_BookOrder.Zonger, T_PaymentWay.PaymentWay, T_DeliveryWay.Way, T_BookOrder.OrderState, T_BookOrder.OrderTime, T_BookOrder.UserName FROM ((T_BookOrder INNER JOIN T_PaymentWay ON T_BookOrder.PaymentWayID = T_PaymentWay.PaymentWayID) INNER JOIN T_DeliveryWay ON T_BookOrder.WayID = T_DeliveryWay.WayID) WHERE (T_BookOrder.UserName = '16120300') And (T_BookOrder.OrderState = '" & i & "') ORDER BY T_BookOrder.OrderTime DESC"
End If

Dim orderinfo As New OleDbDataAdapter(mycom, conn)

Dim ds As New DataSet
orderinfo.Fill(ds, "T_BookOrder")

Dim objPds As PagedDataSource = New PagedDataSource
objPds.DataSource = ds.Tables(0).DefaultView
objPds.AllowPaging = True
objPds.PageSize = 10
Dim CurPage As Integer
If Not Request.QueryString("Page") Is Nothing Then
CurPage = Convert.ToInt32(Request.QueryString("Page"))
Else
CurPage = 1
End If
Dim zcount As Integer = Math.Ceiling(ds.Tables(0).Rows.Count / objPds.PageSize)

Me.Label2.Text = zcount
objPds.CurrentPageIndex = CurPage - 1
Me.Label1.Text = ds.Tables(0).Rows.Count
lblCurrentPage.Text = CurPage.ToString()
If (Not objPds.IsFirstPage) Then
Me.HyperLink2.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1)
End If
If (Not objPds.IsFirstPage) Then
lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1)
End If
If (Not objPds.IsLastPage) Then
lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1)
End If
If (Not objPds.IsLastPage) Then
Me.HyperLink5.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(zcount)
End If


Me.DataGrid1.DataSource = objPds
Me.DataGrid1.DataBind()
End Sub



我用一个dropdownlist来改变datagrid订单状态(i的值),如果每次只改变dropdownlist,就不会发生错误。但是如果你点了下一页,然后再去改变订单状态,如果i的值不够分2页,就会发生错误。我想问一下怎么解决呢?
...全文
97 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
subitt 2004-12-26
  • 打赏
  • 举报
回复
If Not ds.Tables(0).Rows.Count > 10 Then
Me.HyperLink2.Enabled = False
Me.HyperLink5.Enabled = False
Me.lnkNext.Enabled = False
Me.lnkPrev.Enabled = False
Else
Me.HyperLink2.Enabled = True
Me.HyperLink5.Enabled = True
Me.lnkNext.Enabled = True
Me.lnkPrev.Enabled = True
Me.Label2.Text = zcount
objPds.CurrentPageIndex = CurPage - 1


我用过这个方法,感觉还是不行,比如i是1,翻到第3页之后,再改变i的值,然后CurrentPageIndex就停在第3页,不会在第1页了,所以我就不想用这个方法了,有好的吗,请详细一点。解决就结帖哈
tengjian1981 2004-12-26
  • 打赏
  • 举报
回复
up
leihome 2004-12-26
  • 打赏
  • 举报
回复
的值不够分2页则赋一个可以不出错的值

62,243

社区成员

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

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

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

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