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页,就会发生错误。我想问一下怎么解决呢?

解决方案 »

  1.   

    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页了,所以我就不想用这个方法了,有好的吗,请详细一点。解决就结帖哈