这是aspx前台代码(GridView里面的PagerTemplate):                <PagerTemplate>
                <table width="80%" style="font-size:12px;">
                    <tr>
                        <td style="text-align:center">
                            第<asp:Label ID="lblPageIndex" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageIndex + 1 %>'></asp:Label>页
                            /共<asp:Label ID="lblPageCount" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageCount %>'></asp:Label>页&nbsp;&nbsp;
                            <asp:LinkButton ID="btnFirst" runat="server" CausesValidation="False"
                                CommandName="Page" Text="首页" CommandArgument="first" OnCommand="gvPage_Command">
                            </asp:LinkButton>
                            <asp:LinkButton ID="btnPrev" runat="server" CausesValidation="False"
                                CommandName="Page" Text="上一页" CommandArgument="prev" OnCommand="gvPage_Command">
                            </asp:LinkButton>
                            <asp:LinkButton ID="btnNext" runat="server" CausesValidation="False"
                                CommandName="Page" Text="下一页" CommandArgument="next" OnCommand="gvPage_Command">
                            </asp:LinkButton>
                            <asp:LinkButton ID="btnLast" runat="server" CausesValidation="False"
                                CommandName="Page" Text="尾页" CommandArgument="last" OnCommand="gvPage_Command">
                            </asp:LinkButton>&nbsp;&nbsp;
                            <asp:TextBox ID="txtPageIndex" runat="server" Width="20"></asp:TextBox>
                            <asp:Button ID="btnGo" runat="server" Text="GO" CausesValidation="false" CommandName="Page"  CommandArgument="go" OnCommand="gvPage_Command"   />
                        </td>
                    </tr>
                </table>
                </PagerTemplate>
这是cs后台代码:protected void gvPage_Command(object sender, EventArgs e)
        {
            try
            {
                switch (((LinkButton)sender).CommandArgument.ToString())
                {
                    case "first":
                        gvSearch.PageIndex = 0;
                        break;
                    case "last":
                        gvSearch.PageIndex = gvSearch.PageCount - 1;
                        break;
                    case "prev":
                        if (gvSearch.PageIndex > 0)
                        {
                            gvSearch.PageIndex -= 1;
                        }
                        break;
                    case "next":
                        if (gvSearch.PageIndex < gvSearch.PageCount - 1)
                        {
                            gvSearch.PageIndex += 1;
                        }
                        break;
                    case "go":
                        GridViewRow gvr = gvSearch.BottomPagerRow;
                        TextBox txtPageIndex = (TextBox)gvr.FindControl("txtPageIndex");
                        int index = Convert.ToInt32(txtPageIndex.Text);
                        if (index > 0 && index < gvSearch.PageCount)
                        {
                            gvSearch.PageIndex = index - 1;
                        }
                        break;
                }
            }
            catch(Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                if (ViewState["gsql"] != null)
                {
                    string gsql = ViewState["gsql"].ToString();
                    BindGrid(gsql);
                }
            }
        }
我在方法里面设置了断点,可是就是进不去,用OnCommand、OnClick和GridView的RowCommand都没反应,这是为什么呢?

解决方案 »

  1.   

    有个事件写上没有
    GridView_Page PageIndexChanging()
    {
    `  GridView.PageIndex = e.NewPageIndex;
    }
      

  2.   


    我按你的加上了这个事件,可是还是一样啊,在gvPage_Command和gvSearch_PageIndexChanging里设了断点,还是没有进去,点了下一页postback后GridView没内容了
      

  3.   

    有个事件写上没有
    GridView_Page PageIndexChanging()
    {
    ` GridView.PageIndex = e.NewPageIndex;
    }
     
    AllowPagging=true
      

  4.   


    引用 5 楼 ximenwuji 的回复:
    有个事件写上没有
    GridView_Page PageIndexChanging()
    {
    ` GridView.PageIndex = e.NewPageIndex;
    }AllowPagging=true
    +2
      

  5.   

    对,如果不添加PageIndexChanging()这个事件的话,运行应该要出错的。事件代码请参考楼上的。
      

  6.   


    怎么这么奇怪,昨晚没加PageIndexChanging的时候不行,然后今天打开项目再调试,还是没加PageIndexChanging来调试发现能实现分页功能了,加上PageIndexChanging后在里面设置断点,发现按"下一页"的时候没有进去,可是分页功能还是行的,这请问是什么原因?
      

  7.   

    加多一句,重新加载你的gridview一下,自己改下吧。
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
            {
                GridView1.PageIndex = e.NewPageIndex;
                gvBind();
            }