C# gridview分页不工作

C# gridview分页不工作,c#,asp.net,gridview,paging,page-index-changed,C#,Asp.net,Gridview,Paging,Page Index Changed,我有一个gridview控件,但是,当我单击页码时,会出现一个错误“找不到页面”。我错过了什么 我的代码是: <asp:GridView ID="gvEmployeeResults" Width="900px" CellSpacing="1" CellPadding="2" AutoGenerateColumns="false" OnRowDataBound="gvEmployeeResults_OnRowDataBound" runat="server"

我有一个gridview控件,但是,当我单击页码时,会出现一个错误“找不到页面”。我错过了什么

我的代码是:

<asp:GridView ID="gvEmployeeResults" Width="900px" CellSpacing="1" 
    CellPadding="2"  
    AutoGenerateColumns="false" OnRowDataBound="gvEmployeeResults_OnRowDataBound" 
    runat="server" AllowPaging="true" >
    <Columns>
        <asp:TemplateField HeaderText="Last Name, First Name" ItemStyle-Wrap="true" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="left">
            <ItemTemplate>
                    <asp:LinkButton id="lbtnEmployeeName" OnCommand="EditEmployee_Command" CommandArgument='<%#Eval("EmployeeNum")%>' CommandName="EmployeeName" Visible="true" runat="server" ToolTip="Click to edit Employee."><%# DataBinder.Eval(Container.DataItem, "empLastName") + ", " + DataBinder.Eval(Container.DataItem, "empFirstName")%></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="empAddrLine1" ControlStyle-Width="225px" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="left" HeaderText="Address" />
        <asp:BoundField DataField="empCity" ControlStyle-Width="120px" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="left" HeaderText="City" />
        <asp:BoundField DataField="empState" ControlStyle-Width="50px" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="left" HeaderText="State" />
        <asp:BoundField DataField="empPostalCode" ControlStyle-Width="100px" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="left" HeaderText="Zip" />
        <asp:BoundField DataField="empDOB" ControlStyle-Width="100px" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="left" HeaderText="Date Of Birth" />
    </Columns>
</asp:GridView>


        protected void BindGridview()
        {
            corpEmployee.Employee emp = new corpEmployee.Employee();

            emp.empLastName = tboxLastName.Text.Trim();
            emp.empFirstName = tboxFirstName.Text.Trim();
            emp.empDOB = tboxDateOfBirth.Text.Trim();

            gvEmployeeResults.DataSource = corpEmployeeMgr.GetEmployees(emp);
            gvEmployeeResults.DataBind();
        }

        protected void gvEmployeeResults_OnRowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (e.Row.Cells[0].Text.Contains("nbsp;"))
                {
                    e.Row.Cells[0].Text = e.Row.Cells[0].Text.Replace("&lt;", "<").Replace("&gt;", ">").Replace("&amp;", "&");
                }
            }
            else
            {
                return;
            }
        }

        protected void gvEmployeeResults_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvEmployeeResults.PageIndex = e.NewPageIndex;
            gvEmployeeResults.DataBind();
        }

受保护的void BindGridview()
{
corpEmployee.emp=新的corpEmployee.Employee();
emp.empLastName=tboxLastName.Text.Trim();
emp.empFirstName=tboxFirstName.Text.Trim();
emp.empDOB=tboxDateOfBirth.Text.Trim();
gvEmployeeResults.DataSource=corpEmployeeMgr.GetEmployees(emp);
gvEmployeeResults.DataBind();
}
受保护的void gvEmployeeResults_OnRowDataBound(对象发送方,GridViewRowEventArgs e)
{
如果(e.Row.RowType==DataControlRowType.DataRow)
{
if(e.Row.Cells[0].Text.Contains(“nbsp;”))
{
e、 Row.Cells[0]。Text=e.Row.Cells[0]。Text.Replace(“,”)。Replace(“&;”,“&”);
}
}
其他的
{
返回;
}
}
受保护的无效gvEmployeeResults_PageIndexChanging(对象发送方,GridViewPageEventArgs e)
{
gvEmployeeResults.PageIndex=e.NewPageIndex;
gvEmployeeResults.DataBind();
}

您必须在
PageIndexChanging
事件处理程序中调用
BindGridview()

protected void gvEmployeeResults_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
   gvEmployeeResults.PageIndex = e.NewPageIndex;
   BindGridview();
}

您必须使用EnableViewstate=true并绑定一次,然后使用IsPostback。(页面索引)


我相信解决你的问题,我可以详细说明我的解决方案,如果你想下面这个例子哇。。。谢谢我在PageIndexChanging=“gvEmployeeResults\u PageIndexChanging”上丢失了我很高兴能帮助您DotnetRookee调用BindGridView()不起作用。当我在“gvEmployeeResults_PageIndexchange”上放置断点并单击页码时,断点不会被触发
1. EnableViewState=true for your control

2. In the page load 

If(! IspostBack )
{
   Bind()....
}

And set PageIndex