%@ Import NameSpace="System.Data" %>
<%@ Import NameSpace="System.Data.SqlClient" %>
<%@ Page Language="VB" ContentType="text/html" ResponseEncoding="gb2312" %>
<script Language="VB" Runat="server">
dim sqlstr As String
dim con As New SqlConnection("server=pte02;database=aa;UID=sa;PWD=dn_cd")
dim Da As New SQLDataAdapter(sqlstr,con)
public Ds as New DataSet()
Sub Page_Load(Sender As Object,e As EventArgs)
       
End Sub
Sub submit_Click(Sender As Object,e As EventArgs)
    Ds.Clear()
    Da.SelectCommand.CommandText="select * from ZJKC"
    Da.Fill(Ds,"KC")
    Grid1.DataSource=Ds.Tables("KC")
    Grid1.DataBind()
End Sub
Sub Grid1_Sort(Sender As Object, e As DataGridSortCommandEventArgs)
    Dim Dv As New DataView(Ds.Tables("KC"))
    Dv.Sort=e.SortExpression
    Grid1.DataSource=Dv
    Grid1.DataBind()
End Sub
Sub Page_Changed(Sender As Object, e As DataGridPageChangedEventArgs)
    Dim Dv As New DataView(Ds.Tables("KC"))
    Grid1.DataSource=Dv
    Grid1.CurrentPageIndex=e.NewPageIndex
    Grid1.DataBind()
End Sub
</script>
<html><head></head>
<body>
<form Runat="server">
<asp:DataGrid width="100%" id="Grid1" Runat="server" AllowSorting=true 
             AllowPaging="true" PageSize="12"
             PagerStyle-Mode="NumericPages"
             AutoGenerateColumns="False"
             OnSortCommand="Grid1_Sort"
             OnPageIndexChanged="Page_Changed">
         <HeaderStyle BackColor="#339900" HorizontalAlign="Center"/>
         <Columns>
             <asp:BoundColumn DataField="id" HeaderText="财产编号"/>
             <asp:BoundColumn DataField="name" HeaderText="产品名称"/>
             <asp:BoundColumn DataField="speciality" HeaderText="规格"/>
             <asp:BoundColumn DataField="price" HeaderText="单价"/>
             <asp:BoundColumn DataField="indate" HeaderText="验收日期"/>
             <asp:BoundColumn DataField="supli" HeaderText="供应商"/>
             <asp:BoundColumn DataField="location" HeaderText="存放地点"/>
             <asp:BoundColumn DataField="keeper" HeaderText="保管人"/>
             <asp:BoundColumn DataField="state" HeaderText="状态"/>
             <asp:BoundColumn DataField="type" HeaderText="类型"/>
             <asp:BoundColumn DataField="memo" HeaderText="备注"/>
         </Columns>
         </asp:DataGrid>
<Input Type="submit" Value="提交" Size="100" OnServerClick="submit_Click" Runat="server">
<span id="Message" EnableViewState="false" style="font: arial 9pt;" runat="server"/>
</form>
</body></html>点显示的数字跳到其它页时出现:Invalid CurrentPageIndex value. It must be >= 0 and < the PageCount. 错误,但我给submit()里的代码放到page_load()里时又一切正常!

解决方案 »

  1.   

    肯定要出错啊,page_load中你又没绑datagrid,哪里来的pageindex呢?要先进行绑定再分页
      

  2.   

    Sub submit_Click(Sender As Object,e As EventArgs)
        Ds.Clear()
        Da.SelectCommand.CommandText="select * from ZJKC"
        Da.Fill(Ds,"KC")
        Grid1.DataSource=Ds.Tables("KC")
        Grid1.CurrentPageIndex = 0      'Add ROW like this  maybe okey
        Grid1.DataBind()
    End Sub
      

  3.   

    吗呀  vb.net呀 :(
      

  4.   

    to  hl80(代码) 
        我是说,如果我给submit()里的代码放入 page_load()内,就不会出错.但同样的代码放在submit()里就会报错.很郁闷!
    to zl_xue(缺点)
    加上了Grid1.CurrentPageIndex = 0 这一句还是出现同样的错误!
      

  5.   

    ===>changed like this
    Sub Page_Changed(Sender As Object, e As DataGridPageChangedEventArgs)
        Dim Dv As New DataView(Ds.Tables("KC"))    Grid1.CurrentPageIndex=e.NewPageIndex  
       Grid1.DataSource=Dv 
      Grid1.DataBind()
    End Sub