ispostback问题我在做购物车的时候加了一个更改数量的功能
而要用此功能的话必须在page_load的时候加not ispostback而加了这个后我的分页功能game over了~发出完整代码
 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load        If Not Request.Cookies("userName") Is Nothing Then
            If Not IsPostBack Then
                Dim Conn As SqlConnection
                Dim MyComm As SqlCommand
                Dim Adpt As SqlDataAdapter
                Dim customSetting As String = System.Configuration.ConfigurationSettings.AppSettings("ConnectionString")
                Conn = New SqlConnection(customSetting)
                Conn.Open()                Dim Pagesize, Pagecount, RecordNum, CurrentPage As Integer '定义分页
                Pagesize = 10
                MyComm = New SqlCommand("select count(*)  as  ID  from  Shop_car where 用户名= '" & Trim(Request.Cookies("username").Value) & "'and 标识=0", Conn)
                Dim dr As SqlDataReader = MyComm.ExecuteReader()
                Dim intCount As Integer
                If dr.Read() Then
                    intCount = dr("ID")
                Else
                    intCount = 0
                End If
                dr.Close() '结束
                RecordNum = intCount                If RecordNum Mod Pagesize = 0 Then
                    Pagecount = RecordNum \ Pagesize
                Else
                    Pagecount = RecordNum \ Pagesize + 1
                End If
                ViewState("PageCount") = Pagecount                Dim SQL As String
                Dim da As New SqlDataAdapter(SQL, Conn)
                Dim ds As New DataSet
                SQL = "select * from Shop_car where 用户名= '" & Trim(Request.Cookies("username").Value) & "' and 标识=0 order By ID desc"
                da = New SqlDataAdapter(SQL, Conn)
                ds = New DataSet
                da.Fill(ds)                DataGrid1.DataSource = ds
                DataGrid1.DataBind()                Label5.Text = RecordNum
                Label6.Text = Pagecount
                If Label5.Text = "0" Then
                    ImageButton1.Visible = False
                    ImageButton2.Visible = False
                    ImageButton3.Visible = False
                    ImageButton4.Visible = False
                    DataGrid1.Visible = False
                End If
                Conn.Close()
            End If
        Else
        Response.Redirect("Login.aspx?From=" & Request.Url.ToString)        End If
    End Sub打开分页  Private Sub DataGrid1_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DataGrid1.PageIndexChanged
        DataGrid1.CurrentPageIndex = e.NewPageIndex
        DataGrid1.DataBind()
    End Sub

解决方案 »

  1.   

    把取出数据的逻辑:  Dim Conn As SqlConnection
                    Dim MyComm As SqlCommand
                    Dim Adpt As SqlDataAdapter
                    Dim customSetting As String = System.Configuration.ConfigurationSettings.AppSettings("ConnectionString")
                    Conn = New SqlConnection(customSetting)
                    Conn.Open()                Dim Pagesize, Pagecount, RecordNum, CurrentPage As Integer '定义分页
                    Pagesize = 10
                    MyComm = New SqlCommand("select count(*)  as  ID  from  Shop_car where 用户名= '" & Trim(Request.Cookies("username").Value) & "'and 标识=0", Conn)
                    Dim dr As SqlDataReader = MyComm.ExecuteReader()
                    Dim intCount As Integer
                    If dr.Read() Then
                        intCount = dr("ID")
                    Else
                        intCount = 0
                    End If
                    dr.Close() '结束
                    RecordNum = intCount                If RecordNum Mod Pagesize = 0 Then
                        Pagecount = RecordNum \ Pagesize
                    Else
                        Pagecount = RecordNum \ Pagesize + 1
                    End If
                    ViewState("PageCount") = Pagecount                Dim SQL As String
                    Dim da As New SqlDataAdapter(SQL, Conn)
                    Dim ds As New DataSet
                    SQL = "select * from Shop_car where 用户名= '" & Trim(Request.Cookies("username").Value) & "' and 标识=0 order By ID desc"
                    da = New SqlDataAdapter(SQL, Conn)
                    ds = New DataSet
                    da.Fill(ds)
    写在一个方法里:CreateDataSource();
    在Sub DataGrid1_PageIndexChanged方法里: DataGrid1.CurrentPageIndex = e.NewPageIndex
    DataGrid1.DataSource = CreateDataSource()
            DataGrid1.DataBind()
      

  2.   

    嗯!我想也是用的zhongkeruanjian(编程亮子) 这种方法,解决了再结帖。
      

  3.   

    数据绑定当然不能和not ispostback 在一起了,否则以后刷新过来的数据都得不过来的btw, 这里是c#区哦
      

  4.   

    btw?什么意思?变态王?白头翁?:)
    随便是什么拉,C#这里人气旺点嘛。
    理解理解诶!!
      

  5.   

    在VS2003的帮助文档里你查一下PageIndexChanged这个关键字,查到后里面有个这方面的例子,你按里面的做一下。